aether-colony 3.1.17 → 5.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.aether/aether-utils.sh +5354 -0
- package/.aether/agents-claude/aether-ambassador.md +265 -0
- package/.aether/agents-claude/aether-archaeologist.md +327 -0
- package/.aether/agents-claude/aether-architect.md +236 -0
- package/.aether/agents-claude/aether-auditor.md +271 -0
- package/.aether/agents-claude/aether-builder.md +224 -0
- package/.aether/agents-claude/aether-chaos.md +269 -0
- package/.aether/agents-claude/aether-chronicler.md +305 -0
- package/.aether/agents-claude/aether-gatekeeper.md +330 -0
- package/.aether/agents-claude/aether-includer.md +374 -0
- package/.aether/agents-claude/aether-keeper.md +272 -0
- package/.aether/agents-claude/aether-measurer.md +322 -0
- package/.aether/agents-claude/aether-oracle.md +237 -0
- package/.aether/agents-claude/aether-probe.md +211 -0
- package/.aether/agents-claude/aether-queen.md +330 -0
- package/.aether/agents-claude/aether-route-setter.md +178 -0
- package/.aether/agents-claude/aether-sage.md +418 -0
- package/.aether/agents-claude/aether-scout.md +179 -0
- package/.aether/agents-claude/aether-surveyor-disciplines.md +417 -0
- package/.aether/agents-claude/aether-surveyor-nest.md +355 -0
- package/.aether/agents-claude/aether-surveyor-pathogens.md +289 -0
- package/.aether/agents-claude/aether-surveyor-provisions.md +360 -0
- package/.aether/agents-claude/aether-tracker.md +270 -0
- package/.aether/agents-claude/aether-watcher.md +280 -0
- package/.aether/agents-claude/aether-weaver.md +248 -0
- package/.aether/commands/archaeology.yaml +653 -0
- package/.aether/commands/build.yaml +1221 -0
- package/.aether/commands/chaos.yaml +653 -0
- package/.aether/commands/colonize.yaml +438 -0
- package/.aether/commands/continue.yaml +1484 -0
- package/.aether/commands/council.yaml +304 -0
- package/.aether/commands/data-clean.yaml +80 -0
- package/.aether/commands/dream.yaml +275 -0
- package/.aether/commands/entomb.yaml +863 -0
- package/.aether/commands/export-signals.yaml +64 -0
- package/.aether/commands/feedback.yaml +158 -0
- package/.aether/commands/flag.yaml +160 -0
- package/.aether/commands/flags.yaml +177 -0
- package/.aether/commands/focus.yaml +112 -0
- package/.aether/commands/help.yaml +167 -0
- package/.aether/commands/history.yaml +137 -0
- package/.aether/commands/import-signals.yaml +79 -0
- package/.aether/commands/init.yaml +469 -0
- package/.aether/commands/insert-phase.yaml +98 -0
- package/.aether/commands/interpret.yaml +285 -0
- package/.aether/commands/lay-eggs.yaml +224 -0
- package/.aether/commands/maturity.yaml +122 -0
- package/.aether/commands/memory-details.yaml +74 -0
- package/.aether/commands/migrate-state.yaml +174 -0
- package/.aether/commands/oracle.yaml +1224 -0
- package/.aether/commands/organize.yaml +446 -0
- package/.aether/commands/patrol.yaml +621 -0
- package/.aether/commands/pause-colony.yaml +424 -0
- package/.aether/commands/phase.yaml +124 -0
- package/.aether/commands/pheromones.yaml +153 -0
- package/.aether/commands/plan.yaml +1313 -0
- package/.aether/commands/preferences.yaml +63 -0
- package/.aether/commands/redirect.yaml +123 -0
- package/.aether/commands/resume-colony.yaml +373 -0
- package/.aether/commands/resume.yaml +398 -0
- package/.aether/commands/run.yaml +193 -0
- package/.aether/commands/seal.yaml +1205 -0
- package/.aether/commands/skill-create.yaml +337 -0
- package/.aether/commands/status.yaml +364 -0
- package/.aether/commands/swarm.yaml +352 -0
- package/.aether/commands/tunnels.yaml +814 -0
- package/.aether/commands/update.yaml +131 -0
- package/.aether/commands/verify-castes.yaml +159 -0
- package/.aether/commands/watch.yaml +454 -0
- package/.aether/docs/INCIDENT_TEMPLATE.md +32 -0
- package/.aether/docs/QUEEN-SYSTEM.md +211 -0
- package/.aether/docs/README.md +98 -0
- package/.aether/docs/caste-system.md +48 -0
- package/.aether/docs/command-playbooks/README.md +23 -0
- package/.aether/docs/command-playbooks/build-complete.md +349 -0
- package/.aether/docs/command-playbooks/build-context.md +282 -0
- package/.aether/docs/command-playbooks/build-full.md +1682 -0
- package/.aether/docs/command-playbooks/build-prep.md +283 -0
- package/.aether/docs/command-playbooks/build-verify.md +405 -0
- package/.aether/docs/command-playbooks/build-wave.md +749 -0
- package/.aether/docs/command-playbooks/continue-advance.md +524 -0
- package/.aether/docs/command-playbooks/continue-finalize.md +447 -0
- package/.aether/docs/command-playbooks/continue-full.md +1724 -0
- package/.aether/docs/command-playbooks/continue-gates.md +686 -0
- package/.aether/docs/command-playbooks/continue-verify.md +406 -0
- package/.aether/docs/context-continuity.md +84 -0
- package/{runtime → .aether/docs/disciplines}/DISCIPLINES.md +13 -11
- package/.aether/docs/error-codes.md +268 -0
- package/.aether/docs/known-issues.md +94 -0
- package/{runtime → .aether}/docs/pheromones.md +86 -6
- package/.aether/docs/plans/pheromone-display-plan.md +257 -0
- package/.aether/docs/queen-commands.md +98 -0
- package/.aether/docs/source-of-truth-map.md +132 -0
- package/.aether/docs/xml-utilities.md +47 -0
- package/{runtime → .aether}/exchange/pheromone-xml.sh +2 -1
- package/{runtime → .aether}/exchange/registry-xml.sh +7 -3
- package/{runtime → .aether}/exchange/wisdom-xml.sh +11 -4
- package/.aether/rules/aether-colony.md +144 -0
- package/.aether/schemas/example-prompt-builder.xml +234 -0
- package/.aether/scripts/incident-test-add.sh +47 -0
- package/.aether/scripts/weekly-audit.sh +79 -0
- package/.aether/skills/.index.json +649 -0
- package/.aether/skills/colony/.manifest.json +16 -0
- package/.aether/skills/colony/build-discipline/SKILL.md +78 -0
- package/.aether/skills/colony/colony-interaction/SKILL.md +56 -0
- package/.aether/skills/colony/colony-lifecycle/SKILL.md +77 -0
- package/.aether/skills/colony/colony-visuals/SKILL.md +112 -0
- package/.aether/skills/colony/context-management/SKILL.md +80 -0
- package/.aether/skills/colony/error-presentation/SKILL.md +99 -0
- package/.aether/skills/colony/pheromone-protocol/SKILL.md +79 -0
- package/.aether/skills/colony/pheromone-visibility/SKILL.md +81 -0
- package/.aether/skills/colony/state-safety/SKILL.md +84 -0
- package/.aether/skills/colony/worker-priming/SKILL.md +82 -0
- package/.aether/skills/domain/.manifest.json +24 -0
- package/.aether/skills/domain/README.md +33 -0
- package/.aether/skills/domain/django/SKILL.md +49 -0
- package/.aether/skills/domain/docker/SKILL.md +52 -0
- package/.aether/skills/domain/golang/SKILL.md +52 -0
- package/.aether/skills/domain/graphql/SKILL.md +51 -0
- package/.aether/skills/domain/html-css/SKILL.md +48 -0
- package/.aether/skills/domain/nextjs/SKILL.md +45 -0
- package/.aether/skills/domain/nodejs/SKILL.md +53 -0
- package/.aether/skills/domain/postgresql/SKILL.md +53 -0
- package/.aether/skills/domain/prisma/SKILL.md +59 -0
- package/.aether/skills/domain/python/SKILL.md +50 -0
- package/.aether/skills/domain/rails/SKILL.md +52 -0
- package/.aether/skills/domain/react/SKILL.md +45 -0
- package/.aether/skills/domain/rest-api/SKILL.md +58 -0
- package/.aether/skills/domain/svelte/SKILL.md +47 -0
- package/.aether/skills/domain/tailwind/SKILL.md +45 -0
- package/.aether/skills/domain/testing/SKILL.md +53 -0
- package/.aether/skills/domain/typescript/SKILL.md +58 -0
- package/.aether/skills/domain/vue/SKILL.md +49 -0
- package/.aether/templates/QUEEN.md.template +61 -0
- package/.aether/templates/colony-state-reset.jq.template +23 -0
- package/.aether/templates/colony-state.template.json +39 -0
- package/.aether/templates/constraints.template.json +9 -0
- package/.aether/templates/crowned-anthill.template.md +36 -0
- package/.aether/templates/handoff-build-error.template.md +30 -0
- package/.aether/templates/handoff-build-success.template.md +39 -0
- package/.aether/templates/handoff.template.md +40 -0
- package/.aether/templates/learning-observations.template.json +6 -0
- package/.aether/templates/midden.template.json +13 -0
- package/.aether/templates/pheromones.template.json +6 -0
- package/.aether/templates/session.template.json +9 -0
- package/{runtime → .aether}/utils/atomic-write.sh +68 -22
- package/{runtime → .aether}/utils/chamber-compare.sh +23 -10
- package/.aether/utils/chamber-utils.sh +440 -0
- package/.aether/utils/emoji-audit.sh +166 -0
- package/{runtime → .aether}/utils/error-handler.sh +34 -8
- package/.aether/utils/file-lock.sh +313 -0
- package/.aether/utils/flag.sh +267 -0
- package/.aether/utils/hive.sh +572 -0
- package/.aether/utils/learning.sh +1928 -0
- package/.aether/utils/midden.sh +342 -0
- package/.aether/utils/oracle/oracle.md +168 -0
- package/.aether/utils/oracle/oracle.sh +1023 -0
- package/.aether/utils/pheromone.sh +2029 -0
- package/.aether/utils/queen.sh +1698 -0
- package/.aether/utils/scan.sh +860 -0
- package/.aether/utils/semantic-cli.sh +415 -0
- package/.aether/utils/session.sh +552 -0
- package/.aether/utils/skills.sh +509 -0
- package/.aether/utils/spawn-tree.sh +260 -0
- package/.aether/utils/spawn.sh +260 -0
- package/.aether/utils/state-api.sh +199 -0
- package/{runtime → .aether}/utils/state-loader.sh +8 -6
- package/.aether/utils/suggest.sh +611 -0
- package/{runtime → .aether}/utils/swarm-display.sh +10 -1
- package/.aether/utils/swarm.sh +1004 -0
- package/{runtime → .aether}/utils/watch-spawn-tree.sh +11 -2
- package/{runtime → .aether}/utils/xml-compose.sh +9 -3
- package/.aether/utils/xml-convert.sh +277 -0
- package/{runtime → .aether}/utils/xml-core.sh +5 -9
- package/.aether/utils/xml-query.sh +201 -0
- package/.aether/utils/xml-utils.sh +110 -0
- package/{runtime → .aether}/workers.md +97 -81
- package/.claude/agents/ant/aether-ambassador.md +265 -0
- package/.claude/agents/ant/aether-archaeologist.md +327 -0
- package/.claude/agents/ant/aether-architect.md +236 -0
- package/.claude/agents/ant/aether-auditor.md +271 -0
- package/.claude/agents/ant/aether-builder.md +224 -0
- package/.claude/agents/ant/aether-chaos.md +269 -0
- package/.claude/agents/ant/aether-chronicler.md +305 -0
- package/.claude/agents/ant/aether-gatekeeper.md +330 -0
- package/.claude/agents/ant/aether-includer.md +374 -0
- package/.claude/agents/ant/aether-keeper.md +272 -0
- package/.claude/agents/ant/aether-measurer.md +322 -0
- package/.claude/agents/ant/aether-oracle.md +237 -0
- package/.claude/agents/ant/aether-probe.md +211 -0
- package/.claude/agents/ant/aether-queen.md +330 -0
- package/.claude/agents/ant/aether-route-setter.md +178 -0
- package/.claude/agents/ant/aether-sage.md +418 -0
- package/.claude/agents/ant/aether-scout.md +179 -0
- package/.claude/agents/ant/aether-surveyor-disciplines.md +417 -0
- package/.claude/agents/ant/aether-surveyor-nest.md +355 -0
- package/.claude/agents/ant/aether-surveyor-pathogens.md +289 -0
- package/.claude/agents/ant/aether-surveyor-provisions.md +360 -0
- package/.claude/agents/ant/aether-tracker.md +270 -0
- package/.claude/agents/ant/aether-watcher.md +280 -0
- package/.claude/agents/ant/aether-weaver.md +248 -0
- package/.claude/commands/ant/archaeology.md +16 -14
- package/.claude/commands/ant/build.md +43 -1028
- package/.claude/commands/ant/chaos.md +19 -23
- package/.claude/commands/ant/colonize.md +52 -31
- package/.claude/commands/ant/continue.md +40 -1016
- package/.claude/commands/ant/council.md +21 -18
- package/.claude/commands/ant/data-clean.md +81 -0
- package/.claude/commands/ant/dream.md +27 -15
- package/.claude/commands/ant/entomb.md +317 -225
- package/.claude/commands/ant/export-signals.md +57 -0
- package/.claude/commands/ant/feedback.md +48 -26
- package/.claude/commands/ant/flag.md +30 -10
- package/.claude/commands/ant/flags.md +34 -12
- package/.claude/commands/ant/focus.md +45 -19
- package/.claude/commands/ant/help.md +50 -8
- package/.claude/commands/ant/history.md +13 -0
- package/.claude/commands/ant/import-signals.md +71 -0
- package/.claude/commands/ant/init.md +345 -194
- package/.claude/commands/ant/insert-phase.md +101 -0
- package/.claude/commands/ant/interpret.md +26 -4
- package/.claude/commands/ant/lay-eggs.md +184 -127
- package/.claude/commands/ant/maturity.md +32 -11
- package/.claude/commands/ant/memory-details.md +77 -0
- package/.claude/commands/ant/migrate-state.md +20 -2
- package/.claude/commands/ant/oracle.md +337 -74
- package/.claude/commands/ant/organize.md +39 -25
- package/.claude/commands/ant/patrol.md +620 -0
- package/.claude/commands/ant/pause-colony.md +23 -27
- package/.claude/commands/ant/phase.md +40 -42
- package/.claude/commands/ant/pheromones.md +156 -0
- package/.claude/commands/ant/plan.md +185 -51
- package/.claude/commands/ant/preferences.md +65 -0
- package/.claude/commands/ant/redirect.md +45 -30
- package/.claude/commands/ant/resume-colony.md +51 -27
- package/.claude/commands/ant/resume.md +314 -94
- package/.claude/commands/ant/run.md +195 -0
- package/.claude/commands/ant/seal.md +650 -221
- package/.claude/commands/ant/skill-create.md +286 -0
- package/.claude/commands/ant/status.md +196 -31
- package/.claude/commands/ant/swarm.md +16 -46
- package/.claude/commands/ant/tunnels.md +280 -105
- package/.claude/commands/ant/update.md +73 -89
- package/.claude/commands/ant/verify-castes.md +100 -42
- package/.claude/commands/ant/watch.md +14 -12
- package/.opencode/agents/aether-ambassador.md +63 -20
- package/.opencode/agents/aether-archaeologist.md +29 -12
- package/.opencode/agents/aether-architect.md +103 -36
- package/.opencode/agents/aether-auditor.md +51 -18
- package/.opencode/agents/aether-builder.md +70 -20
- package/.opencode/agents/aether-chaos.md +29 -12
- package/.opencode/agents/aether-chronicler.md +60 -18
- package/.opencode/agents/aether-gatekeeper.md +27 -18
- package/.opencode/agents/aether-includer.md +27 -18
- package/.opencode/agents/aether-keeper.md +89 -18
- package/.opencode/agents/aether-measurer.md +27 -18
- package/.opencode/agents/aether-oracle.md +137 -0
- package/.opencode/agents/aether-probe.md +60 -18
- package/.opencode/agents/aether-queen.md +172 -24
- package/.opencode/agents/aether-route-setter.md +57 -12
- package/.opencode/agents/aether-sage.md +26 -18
- package/.opencode/agents/aether-scout.md +28 -20
- package/.opencode/agents/aether-surveyor-disciplines.md +59 -2
- package/.opencode/agents/aether-surveyor-nest.md +59 -2
- package/.opencode/agents/aether-surveyor-pathogens.md +57 -2
- package/.opencode/agents/aether-surveyor-provisions.md +59 -2
- package/.opencode/agents/aether-tracker.md +64 -18
- package/.opencode/agents/aether-watcher.md +66 -19
- package/.opencode/agents/aether-weaver.md +61 -18
- package/.opencode/commands/ant/archaeology.md +7 -14
- package/.opencode/commands/ant/build.md +437 -257
- package/.opencode/commands/ant/chaos.md +7 -24
- package/.opencode/commands/ant/colonize.md +8 -17
- package/.opencode/commands/ant/continue.md +661 -142
- package/.opencode/commands/ant/council.md +11 -22
- package/.opencode/commands/ant/data-clean.md +77 -0
- package/.opencode/commands/ant/dream.md +15 -17
- package/.opencode/commands/ant/entomb.md +133 -62
- package/.opencode/commands/ant/export-signals.md +54 -0
- package/.opencode/commands/ant/feedback.md +24 -5
- package/.opencode/commands/ant/flag.md +16 -4
- package/.opencode/commands/ant/flags.md +24 -10
- package/.opencode/commands/ant/focus.md +22 -5
- package/.opencode/commands/ant/help.md +41 -8
- package/.opencode/commands/ant/history.md +9 -0
- package/.opencode/commands/ant/import-signals.md +68 -0
- package/.opencode/commands/ant/init.md +374 -167
- package/.opencode/commands/ant/insert-phase.md +107 -0
- package/.opencode/commands/ant/interpret.md +16 -0
- package/.opencode/commands/ant/lay-eggs.md +184 -112
- package/.opencode/commands/ant/maturity.md +18 -2
- package/.opencode/commands/ant/memory-details.md +83 -0
- package/.opencode/commands/ant/migrate-state.md +12 -0
- package/.opencode/commands/ant/oracle.md +322 -67
- package/.opencode/commands/ant/organize.md +18 -16
- package/.opencode/commands/ant/patrol.md +626 -0
- package/.opencode/commands/ant/pause-colony.md +12 -29
- package/.opencode/commands/ant/phase.md +30 -40
- package/.opencode/commands/ant/pheromones.md +162 -0
- package/.opencode/commands/ant/plan.md +184 -56
- package/.opencode/commands/ant/preferences.md +71 -0
- package/.opencode/commands/ant/redirect.md +22 -5
- package/.opencode/commands/ant/resume-colony.md +38 -27
- package/.opencode/commands/ant/resume.md +385 -0
- package/.opencode/commands/ant/run.md +201 -0
- package/.opencode/commands/ant/seal.md +259 -45
- package/.opencode/commands/ant/skill-create.md +63 -0
- package/.opencode/commands/ant/status.md +135 -31
- package/.opencode/commands/ant/swarm.md +3 -345
- package/.opencode/commands/ant/tunnels.md +152 -9
- package/.opencode/commands/ant/update.md +70 -91
- package/.opencode/commands/ant/verify-castes.md +96 -42
- package/.opencode/commands/ant/watch.md +7 -0
- package/CHANGELOG.md +356 -0
- package/README.md +203 -573
- package/bin/cli.js +455 -527
- package/bin/generate-commands.js +186 -0
- package/bin/generate-commands.sh +127 -88
- package/bin/lib/init.js +13 -3
- package/bin/lib/spawn-logger.js +0 -15
- package/bin/lib/update-transaction.js +392 -140
- package/bin/npx-install.js +178 -0
- package/bin/sync-to-runtime.sh +5 -137
- package/bin/validate-package.sh +166 -0
- package/package.json +14 -7
- package/.opencode/agents/aether-guardian.md +0 -107
- package/.opencode/agents/workers.md +0 -1034
- package/bin/lib/model-profiles.js +0 -445
- package/bin/lib/model-verify.js +0 -288
- package/bin/lib/proxy-health.js +0 -253
- package/bin/lib/telemetry.js +0 -441
- package/runtime/CONTEXT.md +0 -160
- package/runtime/QUEEN_ANT_ARCHITECTURE.md +0 -402
- package/runtime/aether-utils.sh +0 -3879
- package/runtime/data/signatures.json +0 -41
- package/runtime/docs/AETHER-2.0-IMPLEMENTATION-PLAN.md +0 -1343
- package/runtime/docs/AETHER-PHEROMONE-SYSTEM-MASTER-SPEC.md +0 -2642
- package/runtime/docs/PHEROMONE-INJECTION.md +0 -240
- package/runtime/docs/PHEROMONE-INTEGRATION.md +0 -192
- package/runtime/docs/PHEROMONE-SYSTEM-DESIGN.md +0 -426
- package/runtime/docs/README.md +0 -94
- package/runtime/docs/VISUAL-OUTPUT-SPEC.md +0 -219
- package/runtime/docs/biological-reference.md +0 -272
- package/runtime/docs/codebase-review.md +0 -399
- package/runtime/docs/command-sync.md +0 -164
- package/runtime/docs/constraints.md +0 -116
- package/runtime/docs/implementation-learnings.md +0 -89
- package/runtime/docs/known-issues.md +0 -217
- package/runtime/docs/namespace.md +0 -148
- package/runtime/docs/pathogen-schema-example.json +0 -36
- package/runtime/docs/pathogen-schema.md +0 -111
- package/runtime/docs/planning-discipline.md +0 -159
- package/runtime/docs/progressive-disclosure.md +0 -184
- package/runtime/lib/queen-utils.sh +0 -729
- package/runtime/model-profiles.yaml +0 -100
- package/runtime/planning.md +0 -159
- package/runtime/recover.sh +0 -136
- package/runtime/templates/QUEEN.md.template +0 -79
- package/runtime/utils/chamber-utils.sh +0 -285
- package/runtime/utils/file-lock.sh +0 -122
- package/runtime/utils/spawn-tree.sh +0 -428
- package/runtime/utils/spawn-with-model.sh +0 -56
- package/runtime/utils/xml-utils.sh +0 -2196
- package/runtime/workers-new-castes.md +0 -516
- /package/{runtime → .aether/docs/disciplines}/coding-standards.md +0 -0
- /package/{runtime → .aether/docs/disciplines}/debugging.md +0 -0
- /package/{runtime → .aether/docs/disciplines}/learning.md +0 -0
- /package/{runtime → .aether/docs/disciplines}/tdd.md +0 -0
- /package/{runtime → .aether/docs/disciplines}/verification-loop.md +0 -0
- /package/{runtime → .aether/docs/disciplines}/verification.md +0 -0
- /package/{runtime → .aether}/schemas/aether-types.xsd +0 -0
- /package/{runtime → .aether}/schemas/colony-registry.xsd +0 -0
- /package/{runtime → .aether}/schemas/pheromone.xsd +0 -0
- /package/{runtime → .aether}/schemas/prompt.xsd +0 -0
- /package/{runtime → .aether}/schemas/queen-wisdom.xsd +0 -0
- /package/{runtime → .aether}/schemas/worker-priming.xsd +0 -0
- /package/{runtime → .aether}/utils/colorize-log.sh +0 -0
- /package/{runtime → .aether}/utils/queen-to-md.xsl +0 -0
|
@@ -0,0 +1,268 @@
|
|
|
1
|
+
# Aether Error Code Reference
|
|
2
|
+
|
|
3
|
+
This document is the complete reference for all `E_*` error constants used in Aether's bash utilities and Node.js CLI. When a command fails, the error output includes a `code` field that maps to one of the entries below.
|
|
4
|
+
|
|
5
|
+
**How to read this document:** Find the code you see in the error output, then check the meaning, when it happens, and what to do.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## File Errors
|
|
10
|
+
|
|
11
|
+
### E_FILE_NOT_FOUND
|
|
12
|
+
|
|
13
|
+
- **Meaning:** A required file or directory doesn't exist at the expected path.
|
|
14
|
+
- **When it happens:**
|
|
15
|
+
- A command is invoked but the data file it needs (e.g., `COLONY_STATE.json`, `flags.json`, `CONTEXT.md`) hasn't been created yet.
|
|
16
|
+
- A directory path passed as an argument doesn't exist.
|
|
17
|
+
- **Suggested fix:** Check that `aether init` (or the relevant setup command) has been run. Verify the path exists and is spelled correctly.
|
|
18
|
+
- **Example output:**
|
|
19
|
+
```json
|
|
20
|
+
{"ok":false,"error":{"code":"E_FILE_NOT_FOUND","message":"Couldn't find CONTEXT.md. Try: run context-update init first.","details":null,"recovery":"Check file path and permissions","timestamp":"2026-02-19T13:00:00Z"}}
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## Lock Errors
|
|
26
|
+
|
|
27
|
+
### E_LOCK_FAILED
|
|
28
|
+
|
|
29
|
+
- **Meaning:** Couldn't acquire a file lock — another process is currently holding it.
|
|
30
|
+
- **When it happens:**
|
|
31
|
+
- Two commands try to write to the same file (e.g., `flags.json`) at the same time.
|
|
32
|
+
- A previous command crashed and didn't release its lock. Use `force-unlock` to clear stale locks.
|
|
33
|
+
- **Suggested fix:** Wait for any running operations to finish, then retry. If you're sure nothing else is running, use `aether force-unlock` to clear the lock manually.
|
|
34
|
+
- **Example output:**
|
|
35
|
+
```json
|
|
36
|
+
{"ok":false,"error":{"code":"E_LOCK_FAILED","message":"Failed to acquire lock on flags.json","details":null,"recovery":"Wait for other operations to complete","timestamp":"2026-02-19T13:00:00Z"}}
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
### E_LOCK_STALE
|
|
40
|
+
|
|
41
|
+
- **Meaning:** A lock file exists but belongs to a process that is no longer running, or has exceeded the maximum lock timeout (5 minutes). This differs from `E_LOCK_FAILED` (which means another process holds a live lock) — `E_LOCK_STALE` means the lock is abandoned.
|
|
42
|
+
- **When it happens:**
|
|
43
|
+
- A previous command crashed without releasing its lock.
|
|
44
|
+
- The locking process was killed by the OS (e.g., OOM) or terminated by the user (Ctrl+C) before the trap handler could fire.
|
|
45
|
+
- The lock is older than the configured timeout (300 seconds).
|
|
46
|
+
- **Suggested fix:** Run `aether force-unlock` to clear stale locks, or manually remove the lock file shown in the error message.
|
|
47
|
+
- **Example output:**
|
|
48
|
+
```json
|
|
49
|
+
{"ok":false,"error":{"code":"E_LOCK_STALE","message":"Stale lock found. Remove manually: .aether/locks/flags.json.lock"}}
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
## Tool / Dependency Errors
|
|
55
|
+
|
|
56
|
+
### E_FEATURE_UNAVAILABLE
|
|
57
|
+
|
|
58
|
+
- **Meaning:** A feature or optional tool required for this operation isn't installed or enabled.
|
|
59
|
+
- **When it happens:**
|
|
60
|
+
- XML operations are attempted but `xmllint` isn't installed.
|
|
61
|
+
- A feature has been disabled due to a missing dependency or configuration.
|
|
62
|
+
- **Suggested fix:** Install the required tool (e.g., `brew install libxml2` for xmllint on macOS) or check the feature's documentation for setup steps.
|
|
63
|
+
- **Example output:**
|
|
64
|
+
```json
|
|
65
|
+
{"ok":false,"error":{"code":"E_FEATURE_UNAVAILABLE","message":"xmllint not available. Try: brew install libxml2","details":null,"recovery":null,"timestamp":"2026-02-19T13:00:00Z"}}
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
### E_DEPENDENCY_MISSING
|
|
69
|
+
|
|
70
|
+
- **Meaning:** A required utility script or binary is missing from the expected location.
|
|
71
|
+
- **When it happens:**
|
|
72
|
+
- A utility script in `.aether/utils/` (e.g., `error-handler.sh`, `file-lock.sh`) can't be found.
|
|
73
|
+
- A required binary (e.g., `jq`, `git`) isn't installed or isn't on `$PATH`.
|
|
74
|
+
- **Suggested fix:** Run `aether install` to restore missing system files, or install the missing binary via your system package manager.
|
|
75
|
+
- **Example output:**
|
|
76
|
+
```json
|
|
77
|
+
{"ok":false,"error":{"code":"E_DEPENDENCY_MISSING","message":"Couldn't load error-handler.sh. Try: run aether install to restore system files.","details":null,"recovery":"Install the required dependency","timestamp":"2026-02-19T13:00:00Z"}}
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
## JSON / Data Errors
|
|
83
|
+
|
|
84
|
+
### E_JSON_INVALID
|
|
85
|
+
|
|
86
|
+
- **Meaning:** A JSON file is malformed or is missing required fields.
|
|
87
|
+
- **When it happens:**
|
|
88
|
+
- A data file (`COLONY_STATE.json`, `flags.json`, etc.) has been manually edited and contains a syntax error.
|
|
89
|
+
- A write operation was interrupted, leaving a partially-written file.
|
|
90
|
+
- **Suggested fix:** Open the file and fix the JSON syntax, or delete it and re-run the initialization command to regenerate a fresh copy.
|
|
91
|
+
- **Example output:**
|
|
92
|
+
```json
|
|
93
|
+
{"ok":false,"error":{"code":"E_JSON_INVALID","message":"Failed to parse COLONY_STATE.json. Try: validate with jq '.'' .aether/data/COLONY_STATE.json","details":null,"recovery":"Validate JSON syntax","timestamp":"2026-02-19T13:00:00Z"}}
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
---
|
|
97
|
+
|
|
98
|
+
## Validation Errors
|
|
99
|
+
|
|
100
|
+
### E_VALIDATION_FAILED
|
|
101
|
+
|
|
102
|
+
- **Meaning:** The command was called with missing or invalid arguments.
|
|
103
|
+
- **When it happens:**
|
|
104
|
+
- A required argument (e.g., flag type, flag ID, spawn summary) is missing.
|
|
105
|
+
- An argument value is outside the allowed range or format.
|
|
106
|
+
- **Suggested fix:** Check the usage message in the error output. The error message typically includes the correct usage syntax.
|
|
107
|
+
- **Example output:**
|
|
108
|
+
```json
|
|
109
|
+
{"ok":false,"error":{"code":"E_VALIDATION_FAILED","message":"Usage: flag-add <type> <title> <description> [source] [phase]","details":null,"recovery":null,"timestamp":"2026-02-19T13:00:00Z"}}
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
---
|
|
113
|
+
|
|
114
|
+
## System Errors
|
|
115
|
+
|
|
116
|
+
### E_BASH_ERROR
|
|
117
|
+
|
|
118
|
+
- **Meaning:** An unexpected system command failure occurred — a bash command returned a non-zero exit code where one wasn't expected.
|
|
119
|
+
- **When it happens:**
|
|
120
|
+
- A system command (e.g., `cp`, `mkdir`, `git`) fails unexpectedly.
|
|
121
|
+
- A script runs under `set -e` and a command exits non-zero.
|
|
122
|
+
- **Suggested fix:** Check the `details` field in the error output for the exact command and line number. Fix the underlying system issue (permissions, disk space, etc.) and retry.
|
|
123
|
+
- **Example output:**
|
|
124
|
+
```json
|
|
125
|
+
{"ok":false,"error":{"code":"E_BASH_ERROR","message":"Bash command failed","details":{"line":42,"command":"cp src dst","exit_code":1},"recovery":null,"timestamp":"2026-02-19T13:00:00Z"}}
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
### E_UNKNOWN
|
|
129
|
+
|
|
130
|
+
- **Meaning:** An unclassified error occurred — something went wrong that doesn't fit a more specific category.
|
|
131
|
+
- **When it happens:**
|
|
132
|
+
- An error path that hasn't been given a specific code yet.
|
|
133
|
+
- A catch-all for unexpected failure conditions.
|
|
134
|
+
- **Suggested fix:** Check the error message for context. If you see this frequently, please report it so a specific code can be added.
|
|
135
|
+
- **Example output:**
|
|
136
|
+
```json
|
|
137
|
+
{"ok":false,"error":{"code":"E_UNKNOWN","message":"An unknown error occurred","details":null,"recovery":null,"timestamp":"2026-02-19T13:00:00Z"}}
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
---
|
|
141
|
+
|
|
142
|
+
## Hub / Repository Errors
|
|
143
|
+
|
|
144
|
+
### E_HUB_NOT_FOUND
|
|
145
|
+
|
|
146
|
+
- **Meaning:** The Aether hub (`~/.aether/`) doesn't exist on this machine.
|
|
147
|
+
- **When it happens:**
|
|
148
|
+
- Aether hasn't been installed yet.
|
|
149
|
+
- The hub directory was accidentally deleted.
|
|
150
|
+
- **Suggested fix:** Run `npm install -g aether` to install Aether. This creates the hub at `~/.aether/`.
|
|
151
|
+
- **Example output:**
|
|
152
|
+
```json
|
|
153
|
+
{"ok":false,"error":{"code":"E_HUB_NOT_FOUND","message":"Couldn't find the Aether hub. Try: npm install -g aether","details":null,"recovery":"Run: aether install","timestamp":"2026-02-19T13:00:00Z"}}
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
### E_REPO_NOT_INITIALIZED
|
|
157
|
+
|
|
158
|
+
- **Meaning:** The current repository hasn't been initialized with Aether.
|
|
159
|
+
- **When it happens:**
|
|
160
|
+
- Running an Aether command in a repo before running `/ant:init`.
|
|
161
|
+
- The `.aether/` directory or `COLONY_STATE.json` is missing from the current repo.
|
|
162
|
+
- **Suggested fix:** Run `/ant:init` in Claude Code to initialize Aether in this repository.
|
|
163
|
+
- **Example output:**
|
|
164
|
+
```json
|
|
165
|
+
{"ok":false,"error":{"code":"E_REPO_NOT_INITIALIZED","message":"Couldn't find Aether initialization in this repo. Try: run /ant:init first.","details":null,"recovery":"Run /ant:init in this repo first","timestamp":"2026-02-19T13:00:00Z"}}
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
### E_GIT_ERROR
|
|
169
|
+
|
|
170
|
+
- **Meaning:** A git operation failed.
|
|
171
|
+
- **When it happens:**
|
|
172
|
+
- `git stash`, `git commit`, `git log`, or another git command returns an error.
|
|
173
|
+
- The directory isn't a git repository.
|
|
174
|
+
- There are merge conflicts or a detached HEAD state.
|
|
175
|
+
- **Suggested fix:** Run `git status` to see the current state of your repository. Resolve any conflicts or uncommitted changes, then retry the command.
|
|
176
|
+
- **Example output:**
|
|
177
|
+
```json
|
|
178
|
+
{"ok":false,"error":{"code":"E_GIT_ERROR","message":"Git operation failed. Try: run git status to check repository state.","details":null,"recovery":"Check git status and resolve conflicts","timestamp":"2026-02-19T13:00:00Z"}}
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
---
|
|
182
|
+
|
|
183
|
+
## Resource Errors
|
|
184
|
+
|
|
185
|
+
### E_RESOURCE_NOT_FOUND
|
|
186
|
+
|
|
187
|
+
- **Meaning:** A runtime resource (e.g., an active session, a worker, a swarm) doesn't exist.
|
|
188
|
+
- **When it happens:**
|
|
189
|
+
- A command refers to a session ID, worker name, or swarm ID that doesn't exist or has already completed.
|
|
190
|
+
- Attempting to read or update a resource that hasn't been created yet.
|
|
191
|
+
- **Suggested fix:** Check that the resource was created first. List available resources with the relevant `list` command (e.g., `flag-list`, `swarm-findings-read`).
|
|
192
|
+
- **Example output:**
|
|
193
|
+
```json
|
|
194
|
+
{"ok":false,"error":{"code":"E_RESOURCE_NOT_FOUND","message":"Couldn't find the requested resource. Try: check that it was created first.","details":null,"recovery":"Check that the resource exists and try again","timestamp":"2026-02-19T13:00:00Z"}}
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
---
|
|
198
|
+
|
|
199
|
+
## For Contributors
|
|
200
|
+
|
|
201
|
+
### Adding a New Error Code
|
|
202
|
+
|
|
203
|
+
When you need a new error code, follow this checklist:
|
|
204
|
+
|
|
205
|
+
1. **Define the constant** in `.aether/utils/error-handler.sh` at the top of the file:
|
|
206
|
+
```bash
|
|
207
|
+
E_MY_NEW_CODE="E_MY_NEW_CODE"
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
2. **Add a recovery function** in `error-handler.sh`:
|
|
211
|
+
```bash
|
|
212
|
+
_recovery_my_new_code() { echo '"Description of how to fix this"'; }
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
3. **Add a case entry** in the `_get_recovery` function in `error-handler.sh`:
|
|
216
|
+
```bash
|
|
217
|
+
"$E_MY_NEW_CODE") _recovery_my_new_code ;;
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
4. **Add a fallback definition** at the top of `aether-utils.sh` (in the fallback constants block):
|
|
221
|
+
```bash
|
|
222
|
+
: "${E_MY_NEW_CODE:=E_MY_NEW_CODE}"
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
5. **Export the constant and function** at the bottom of `error-handler.sh`:
|
|
226
|
+
```bash
|
|
227
|
+
export E_MY_NEW_CODE
|
|
228
|
+
export -f _recovery_my_new_code
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
6. **Document the code** in this file (`docs/error-codes.md`) following the existing format.
|
|
232
|
+
|
|
233
|
+
### Naming Convention
|
|
234
|
+
|
|
235
|
+
- **Prefix:** Always start with `E_`
|
|
236
|
+
- **Case:** SCREAMING_SNAKE_CASE (e.g., `E_FILE_NOT_FOUND`, `E_LOCK_FAILED`)
|
|
237
|
+
- **Be specific:** Prefer `E_FILE_NOT_FOUND` over `E_ERROR` — the code should communicate the failure category
|
|
238
|
+
|
|
239
|
+
### Category Selection Guide
|
|
240
|
+
|
|
241
|
+
| Category | Use when... |
|
|
242
|
+
|----------|-------------|
|
|
243
|
+
| File Errors | A file or directory path doesn't exist |
|
|
244
|
+
| Lock Errors | Lock acquisition fails |
|
|
245
|
+
| Tool/Dependency Errors | A required tool or script is missing |
|
|
246
|
+
| JSON/Data Errors | File content is malformed or invalid |
|
|
247
|
+
| Validation Errors | Arguments are wrong or missing |
|
|
248
|
+
| System Errors | Unexpected bash command failure |
|
|
249
|
+
| Hub/Repository Errors | Aether infrastructure is missing or not set up |
|
|
250
|
+
| Resource Errors | A named runtime object doesn't exist |
|
|
251
|
+
|
|
252
|
+
### Message Style Requirements
|
|
253
|
+
|
|
254
|
+
Every `json_err` call **must** include a "Try:" suggestion in the message:
|
|
255
|
+
|
|
256
|
+
```bash
|
|
257
|
+
# Correct — includes Try: suggestion
|
|
258
|
+
json_err "$E_FILE_NOT_FOUND" "Couldn't find flags.json. Try: run flag-add first to create it."
|
|
259
|
+
|
|
260
|
+
# Wrong — no actionable suggestion
|
|
261
|
+
json_err "$E_FILE_NOT_FOUND" "flags.json not found"
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
**Tone:** Use plain, friendly language. "Couldn't find..." is better than "File not found". Users are not experts in bash internals.
|
|
265
|
+
|
|
266
|
+
---
|
|
267
|
+
|
|
268
|
+
*Last updated: 2026-03-29*
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
# Known Issues and Workarounds
|
|
2
|
+
|
|
3
|
+
Documented issues from Oracle research findings. These are known limitations and bugs in the Aether system.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Medium Priority Issues
|
|
8
|
+
|
|
9
|
+
### BUG-004: Missing error code in flag-acknowledge
|
|
10
|
+
**Location:** `flag-acknowledge` subcommand in `.aether/utils/flag.sh`
|
|
11
|
+
**Severity:** MEDIUM
|
|
12
|
+
**Status:** [FIXED in v2.1 -- Phase 10 error triage + Phase 13 modularization]
|
|
13
|
+
`flag-acknowledge` now uses `$E_VALIDATION_FAILED`, `$E_FILE_NOT_FOUND`, `$E_LOCK_FAILED`, and `$E_JSON_INVALID` appropriately.
|
|
14
|
+
|
|
15
|
+
### BUG-006: No lock release on JSON validation failure
|
|
16
|
+
**Location:** `atomic_write` in `.aether/utils/atomic-write.sh`
|
|
17
|
+
**Severity:** MEDIUM
|
|
18
|
+
**Symptom:** If JSON validation fails in `atomic_write`, temp file is cleaned but any lock held by the caller is not released
|
|
19
|
+
**Impact:** Lock remains held if caller had acquired it before calling `atomic_write`
|
|
20
|
+
**Fix:** Document lock ownership contract clearly -- callers must use trap-based cleanup
|
|
21
|
+
**Status:** Open -- `atomic_write` itself does not manage locks; callers are responsible for lock release via EXIT traps
|
|
22
|
+
|
|
23
|
+
### BUG-007: 17+ instances of missing error codes
|
|
24
|
+
**Location:** Various subcommands across `.aether/aether-utils.sh` and domain modules
|
|
25
|
+
**Severity:** MEDIUM
|
|
26
|
+
**Status:** [Mostly FIXED in v2.1 -- Phase 10 error triage]
|
|
27
|
+
Phase 10 replaced ~110 lazy error suppressions with proper fallbacks and added `$E_*` constants to ~48 dangerous paths. A small number of uncommented `2>/dev/null` idioms remain (SUPPRESS:OK annotated).
|
|
28
|
+
|
|
29
|
+
### BUG-008: Missing error code in flag-add jq failure
|
|
30
|
+
**Location:** `flag-add` subcommand in `.aether/utils/flag.sh`
|
|
31
|
+
**Severity:** HIGH
|
|
32
|
+
**Status:** [FIXED in v2.1 -- Phase 10 error triage + Phase 13 modularization]
|
|
33
|
+
`flag-add` now uses `$E_VALIDATION_FAILED`, `$E_JSON_INVALID`, and proper error handling throughout.
|
|
34
|
+
|
|
35
|
+
### BUG-009: Missing error codes in file checks
|
|
36
|
+
**Location:** `flag-acknowledge` and related subcommands in `.aether/utils/flag.sh`
|
|
37
|
+
**Severity:** MEDIUM
|
|
38
|
+
**Status:** [FIXED in v2.1 -- Phase 10 error triage + Phase 13 modularization]
|
|
39
|
+
File-not-found errors now use `json_err "$E_FILE_NOT_FOUND" "..."` consistently.
|
|
40
|
+
|
|
41
|
+
### BUG-010: Missing error codes in context-update
|
|
42
|
+
**Location:** `context-update` subcommand in `.aether/aether-utils.sh`
|
|
43
|
+
**Severity:** MEDIUM
|
|
44
|
+
**Status:** [FIXED in v2.1 -- Phase 10 error triage]
|
|
45
|
+
All error paths now use `$E_FILE_NOT_FOUND`, `$E_LOCK_FAILED`, and `$E_VALIDATION_FAILED` consistently.
|
|
46
|
+
|
|
47
|
+
### BUG-012: Missing error code in unknown command
|
|
48
|
+
**Location:** Default case (`*`) in `.aether/aether-utils.sh` dispatch
|
|
49
|
+
**Severity:** LOW
|
|
50
|
+
**Status:** [FIXED in v2.1 -- Phase 10 error triage]
|
|
51
|
+
Unknown command handler now uses `json_err "$E_VALIDATION_FAILED" "Unknown command: $cmd"`.
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
## Architecture Issues
|
|
56
|
+
|
|
57
|
+
### ISSUE-001: Inconsistent error code usage
|
|
58
|
+
**Location:** Multiple locations
|
|
59
|
+
**Severity:** MEDIUM
|
|
60
|
+
**Description:** Some `json_err` calls use hardcoded strings instead of constants
|
|
61
|
+
**Status:** [Mostly FIXED in v2.1 -- Phase 10 error triage]
|
|
62
|
+
The majority of error paths now use `$E_*` constants. Remaining intentional suppressions are annotated with SUPPRESS:OK comments.
|
|
63
|
+
|
|
64
|
+
### ISSUE-005: Potential infinite loop in spawn-tree
|
|
65
|
+
**Location:** `spawn-tree-depth` in `.aether/utils/spawn.sh`
|
|
66
|
+
**Severity:** LOW
|
|
67
|
+
**Description:** Edge case with circular parent chain could cause issues
|
|
68
|
+
**Mitigation:** Safety limit of 5 exists
|
|
69
|
+
**Status:** Open -- low risk due to safety limit; code extracted to `spawn.sh` during Phase 13 modularization
|
|
70
|
+
|
|
71
|
+
### ISSUE-006: Fallback json_err incompatible
|
|
72
|
+
**Location:** `.aether/aether-utils.sh` (lines ~65-72, fallback error handler)
|
|
73
|
+
**Severity:** LOW
|
|
74
|
+
**Description:** Fallback json_err doesn't accept error code parameter
|
|
75
|
+
**Impact:** If error-handler.sh fails to load, error codes are lost
|
|
76
|
+
**Status:** Open -- low risk since error-handler.sh is a stable infrastructure module
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
## Architecture Gaps
|
|
81
|
+
|
|
82
|
+
### GAP-007: No error code standards documentation
|
|
83
|
+
**Description:** Error codes exist but aren't documented for external consumers
|
|
84
|
+
**Impact:** Developers don't know which codes to use
|
|
85
|
+
**Status:** Partially addressed -- `_aether_log_error` infrastructure added in Phase 10, but no standalone error code reference doc exists yet
|
|
86
|
+
|
|
87
|
+
### GAP-008: Missing error path test coverage
|
|
88
|
+
**Description:** Error handling paths not fully tested
|
|
89
|
+
**Impact:** Bugs in error handling go undetected
|
|
90
|
+
**Status:** Partially addressed -- Phase 12 added state-api tests; 580+ tests now pass, but error-specific path coverage remains incomplete
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
*Generated from Oracle Research findings -- Updated 2026-03-24 during v2.1 documentation accuracy phase*
|
|
@@ -10,17 +10,31 @@ Pheromones are how you communicate with the colony. Instead of micromanaging ind
|
|
|
10
10
|
- **Optional TTL** -- use `--ttl` flag for wall-clock expiration (e.g., `--ttl 2h` for 2 hours)
|
|
11
11
|
- **Priority levels** determine worker attention: high (REDIRECT), normal (FOCUS), low (FEEDBACK)
|
|
12
12
|
- **Expired signals** are filtered on read -- no cleanup process needed
|
|
13
|
+
- **Compact priming path** (`pheromone-prime --compact`) injects only top signals by priority/strength for low token usage
|
|
13
14
|
|
|
14
15
|
Run `/ant:status` at any time to see all active pheromones.
|
|
15
16
|
|
|
16
17
|
---
|
|
17
18
|
|
|
19
|
+
## How Signals Reach Workers
|
|
20
|
+
|
|
21
|
+
Workers do not independently read or query pheromone files. Instead, colony-prime handles signal delivery:
|
|
22
|
+
|
|
23
|
+
1. **colony-prime assembles signals** via `pheromone-prime --compact`, collecting all active signals sorted by priority and strength
|
|
24
|
+
2. **Signals are injected into the `prompt_section`** of the worker spawn context -- they become part of the worker's prompt, not something the worker looks up
|
|
25
|
+
3. **Workers see signals as part of their instructions**, not by reading `.aether/data/pheromones.json` directly
|
|
26
|
+
4. **Builder, Watcher, and Scout** have `pheromone_protocol` sections in their agent definitions (`.claude/agents/ant/`) that instruct them how to act on the injected signals
|
|
27
|
+
|
|
28
|
+
This injection model means pheromones influence worker behavior through prompt context, the same way any other instruction reaches a worker.
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
18
32
|
## FOCUS -- Guide Attention
|
|
19
33
|
|
|
20
34
|
**Command:** `/ant:focus "<area>"`
|
|
21
35
|
**Priority:** normal | **Default expiration:** end of phase
|
|
22
36
|
|
|
23
|
-
**What it does:** Tells the colony "pay extra attention here."
|
|
37
|
+
**What it does:** Tells the colony "pay extra attention here." FOCUS signals are injected into worker prompts via colony-prime, weighting the indicated area higher in task execution.
|
|
24
38
|
|
|
25
39
|
### When to use FOCUS
|
|
26
40
|
|
|
@@ -146,16 +160,16 @@ Auto-emitted signals have their `source` field set to indicate origin: `"worker:
|
|
|
146
160
|
|
|
147
161
|
## Signal Combinations
|
|
148
162
|
|
|
149
|
-
Pheromones combine.
|
|
163
|
+
Pheromones combine. colony-prime injects all active signals into worker prompts, ordered by priority:
|
|
150
164
|
|
|
151
165
|
| Combination | Effect |
|
|
152
166
|
|-------------|--------|
|
|
153
|
-
| FOCUS + FEEDBACK |
|
|
154
|
-
| FOCUS + REDIRECT |
|
|
155
|
-
| FEEDBACK + REDIRECT |
|
|
167
|
+
| FOCUS + FEEDBACK | The focused area is weighted higher and approach is adjusted based on feedback |
|
|
168
|
+
| FOCUS + REDIRECT | The focused area is prioritized while the redirected pattern is flagged for avoidance |
|
|
169
|
+
| FEEDBACK + REDIRECT | Approach adjustments (feedback) and avoidance patterns (redirect) are both injected |
|
|
156
170
|
| All three | Full steering: attention (FOCUS), avoidance (REDIRECT), and adjustment (FEEDBACK) |
|
|
157
171
|
|
|
158
|
-
**Priority processing:**
|
|
172
|
+
**Priority processing:** High priority signals appear first in the injected context, then normal, then low.
|
|
159
173
|
|
|
160
174
|
---
|
|
161
175
|
|
|
@@ -188,6 +202,70 @@ This ensures signals don't expire while you're away from the project.
|
|
|
188
202
|
|
|
189
203
|
---
|
|
190
204
|
|
|
205
|
+
## Viewing Active Pheromones
|
|
206
|
+
|
|
207
|
+
**Command:** `/ant:pheromones [filter]`
|
|
208
|
+
|
|
209
|
+
Displays all active signals in a formatted table with:
|
|
210
|
+
- Signal type (FOCUS/REDIRECT/FEEDBACK)
|
|
211
|
+
- Current strength percentage (accounting for decay)
|
|
212
|
+
- Elapsed time since creation
|
|
213
|
+
- Remaining time before expiration
|
|
214
|
+
|
|
215
|
+
**Filters:**
|
|
216
|
+
- `/ant:pheromones` — Show all active signals
|
|
217
|
+
- `/ant:pheromones focus` — Show only FOCUS signals
|
|
218
|
+
- `/ant:pheromones redirect` — Show only REDIRECT signals
|
|
219
|
+
- `/ant:pheromones feedback` — Show only FEEDBACK signals
|
|
220
|
+
- `/ant:pheromones clear` — Clear expired/inactive signals
|
|
221
|
+
|
|
222
|
+
---
|
|
223
|
+
|
|
224
|
+
## Automatic Suggestions
|
|
225
|
+
|
|
226
|
+
The colony can analyze your codebase and suggest pheromones worth capturing.
|
|
227
|
+
|
|
228
|
+
**During builds:** At Step 4.2, the colony automatically analyzes the codebase and proposes relevant signals:
|
|
229
|
+
- Detects hardcoded values that should be configurable
|
|
230
|
+
- Finds error-prone patterns from the midden
|
|
231
|
+
- Identifies architectural constraints from directory structure
|
|
232
|
+
- Suggests FOCUS areas based on file modification patterns
|
|
233
|
+
- Proposes REDIRECT signals for anti-patterns
|
|
234
|
+
|
|
235
|
+
**Tick-to-approve UI:** When suggestions are found, the build pauses to show:
|
|
236
|
+
|
|
237
|
+
```
|
|
238
|
+
🎯 Proposed Pheromone 1 of 3
|
|
239
|
+
|
|
240
|
+
Type: FOCUS
|
|
241
|
+
Content: "Audio processing — maintain thread safety"
|
|
242
|
+
Confidence: High (3 similar patterns found)
|
|
243
|
+
|
|
244
|
+
[A]pprove [R]eject [S]kip [D]ismiss All
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
**Actions:**
|
|
248
|
+
- **A**pprove — Creates the pheromone signal
|
|
249
|
+
- **R**eject — Discards this suggestion (logs reason)
|
|
250
|
+
- **S**kip — Defer decision (shown again next build)
|
|
251
|
+
- **D**ismiss All — Skip all remaining suggestions
|
|
252
|
+
|
|
253
|
+
---
|
|
254
|
+
|
|
255
|
+
## Signal Decay
|
|
256
|
+
|
|
257
|
+
Pheromones lose strength over time (natural decay):
|
|
258
|
+
|
|
259
|
+
| Signal Type | Half-life | Full decay |
|
|
260
|
+
|-------------|-----------|------------|
|
|
261
|
+
| FOCUS | 15 days | 30 days |
|
|
262
|
+
| REDIRECT | 30 days | 60 days |
|
|
263
|
+
| FEEDBACK | 45 days | 90 days |
|
|
264
|
+
|
|
265
|
+
Signals below 10% strength are considered inactive but remain in history.
|
|
266
|
+
|
|
267
|
+
---
|
|
268
|
+
|
|
191
269
|
## Quick Reference
|
|
192
270
|
|
|
193
271
|
| Signal | Command | Priority | Default Expiration | Use for |
|
|
@@ -203,3 +281,5 @@ This ensures signals don't expire while you're away from the project.
|
|
|
203
281
|
- For gentle nudges: FEEDBACK (low priority)
|
|
204
282
|
- For attention: FOCUS (normal priority)
|
|
205
283
|
- For short-lived signals: use `--ttl` flag
|
|
284
|
+
- To see current signals: `/ant:pheromones`
|
|
285
|
+
- To clear expired: `/ant:pheromones clear`
|