Aether is Ego Hygiene’s canonical first-party library of reusable AI specifications, skills, and agent source with deterministic validation and build tooling.
Architecture navigation: META.md inventories Aether's complete 18-document architecture graph. The reusable materialization contract, schema, and consumer validator live under library/organization/specs/architecture/.
- Repository status: active, with canonical source in
library/organization/. - Publishing/install surfaces (
gh skill, release tags) are preview-dependent and may change CLI behavior. - Artifact lifecycle policy:
draft -> stable -> deprecated -> retired(seeARCHITECTURE.md). - Catalog records may also include
experimentalstate where explicitly defined by catalog contracts. - Only
stableartifacts are releasable per catalog policy.
Aether owns:
- First-party canonical specs, skills, and agents.
- Catalog/provenance schemas and deterministic validators.
- Distribution/projection build scripts.
Aether does not own:
- Org-wide deployment automation, CI baseline, templates, environment provisioning, shell command runtime tooling, lint implementation, release orchestration, or conformance enforcement in consumer repos.
See PURPOSE.md#4-what-aether-is-not.
Canonical source:
library/organization/specs/library/organization/skills/library/organization/agents/
Generated artifacts:
catalog/first-party/catalog.v1.jsondist/skills/dist/github/
.staging/ is non-canonical migration/provenance holding space and cannot be emptied without ADR-005 deletion-gate requirements (DECISIONS.md#adr-005).
Current canonical inventory snapshot (recompute with the commands shown):
- 27 specifications (
find library/organization/specs -name "*.spec.md") - 33 skills (
find library/organization/skills -name "SKILL.md") - 9 canonical agent profiles (
find library/organization/agents -name "AGENT.md")
Machine-readable catalog and provenance:
catalog/first-party/catalog.v1.jsoncatalog/external/approved-skills.v1.json
- Python 3.12+
- Git
- GitHub CLI (
gh) 2.96+ for skill publish/install flows - Task 3 (optional) for convenience wrappers in
Taskfile.yml
Install dev dependencies:
pip install -r requirements-dev.lockFrom repository root:
./aether distribution build --output-directory "dist"
./aether validate --format "text"
./aether catalog generate --check
./aether testPrepare a deterministic, human-reviewable social campaign packet from an exact Identity package, pinned Aether catalog, and user brief:
python3 \
"dist/skills/prepare-social-campaign-handoff/scripts/campaign-handoff.py" \
prepare \
--identity-package "identity-social-surfaces.json" \
--catalog "catalog.v1.json" \
--brief "campaign-brief.json" \
--output "campaign-handoff.json"The skill never posts, schedules, buys ads, or accepts platform credentials. It authorizes immutable export only after freshness evidence, every required check, human review, and a digest-bound approval record are present.
Primary validator:
./aether distribution build --output-directory "dist"
./aether validate --format "text"
./aether validate --format "json"Targeted validation scopes:
./aether validate --skills --format "text"
./aether validate --specifications --format "text"
./aether validate --catalog --format "text"
./aether validate --distribution --format "text"
./aether validate --provenance --format "text"
./aether validate --staging --format "text"
./aether validate --links --format "text"
./aether validate --evals --format "text"Catalog check:
python3 catalog/validate_catalog.pyTest suite:
./aether testBuild deterministic first-party skill distributions:
./aether distribution build --output-directory "dist"
./aether distribution build --output-directory "dist" --checkUnderlying generators remain available when a narrower check is needed:
python3 library/organization/skills/build-distributions.py
python3 library/organization/skills/build-distributions.py --check
python3 library/organization/agents/build-projections.py
python3 library/organization/agents/build-projections.py --checkInspect generated output:
find dist/skills -maxdepth 2 -type f | sort
find dist/github -maxdepth 4 -type f | sortValidate publishability (no release write):
gh skill publish "dist" --dry-runOptional Taskfile convenience wrappers build first and delegate to the same canonical command surface:
task skills:build
task skills:publish:dry-run
task skills:publish RELEASE_TAG="v1.0.0"The live Taskfile publish path requires an explicit release tag and runs the dry-run task before publishing. See docs/taskfile-workflows.md for direct-command equivalents and ownership boundaries.
Install from local build output:
gh skill install "./dist" "create-purpose-document" --from-localInstall from repository default ref:
gh skill install "egohygiene/aether" "create-purpose-document"Pin by release tag (or commit SHA):
gh skill install "egohygiene/aether" \
"create-purpose-document" \
--pin "v1.0.0"Update skills:
gh skill update --dry-run
gh skill update --all
gh skill update --unpinInspect installed paths (for manual removal when needed):
gh skill list --json skillName,path,scope,pinnedAt present, GitHub CLI exposes update but no dedicated remove subcommand; remove by deleting the listed installed skill directory at the reported path.
- Repository release tags pin installable snapshots.
- Artifact versions are per-record metadata in the first-party catalog.
- Breaking changes require major version increments in artifact metadata and release documentation.
- Only stable artifacts are eligible for release manifests.
- Release publication is explicit through
.github/workflows/release-first-party-skills.yml; PR validation stays read-only in.github/workflows/pr-validation.yml.
See CHANGELOG.md and docs/release-and-pinning-guide.md.
Every active Ego Hygiene repository also declares its repository-level release
profile, version authorities, changelog, evidence, and manual handoff in
.egohygiene/release.json. The canonical convention and migration guide are
repository-release
and repository release convention.
External skill records must be reconstructable from staged provenance evidence and validated against schema:
catalog/external/approved-skills.v1.jsoncatalog/schemas/aether.external-source-record.v1.schema.json.staging/manifests/skills-lock.json
Policy and review workflow: docs/external-source-review-guide.md.
- Treat all generated or imported agent/skill artifacts as executable instruction surfaces.
- Review tools, links, scripts, and external references before promotion or installation.
- Never commit credentials/secrets in frontmatter, templates, eval fixtures, or hooks.
See SECURITY.md and docs/agent-and-hook-safety-guide.md.
- Edit canonical source only (
library/organization/,catalog/schemas/contracts). - Run deterministic validation/build checks.
- Regenerate derived artifacts when required.
- Submit focused PRs with clear scope and evidence.
Detailed process: CONTRIBUTING.md.
Aether interfaces with neighboring repos/systems but does not replace them:
egohygiene/.github: org agent deployment surfaces- Empathy: repository baselines
- Holon: repository templates
- Realm: dev environment provisioning
- Mantle: shell command runtime
- Egolint: lint implementation
- Relay: GitHub Actions/workflow automation
- PACE: conformance enforcement
- Consumer repositories: local policy/overrides and runtime adoption
Consumer-local instructions override Aether defaults in consumer context.
- License:
LICENSE - Support:
SUPPORT.md
The external review register evaluates every captured source. The initial allowlist is intentionally deny-by-default and contains only immutable, external, agent-assisted reference records. It does not authorize automatic installation, execution, first-party promotion, or external delivery.
Use the external source review guide and review cadence document before selecting or updating an external artifact.