aether-colony 1.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/CONTEXT.md +160 -0
- package/.aether/QUEEN.md +84 -0
- package/.aether/aether-utils.sh +7749 -0
- package/.aether/docs/QUEEN-SYSTEM.md +211 -0
- package/.aether/docs/README.md +68 -0
- package/.aether/docs/caste-system.md +48 -0
- package/.aether/docs/disciplines/DISCIPLINES.md +93 -0
- package/.aether/docs/disciplines/coding-standards.md +197 -0
- package/.aether/docs/disciplines/debugging.md +207 -0
- package/.aether/docs/disciplines/learning.md +254 -0
- package/.aether/docs/disciplines/tdd.md +257 -0
- package/.aether/docs/disciplines/verification-loop.md +167 -0
- package/.aether/docs/disciplines/verification.md +116 -0
- package/.aether/docs/error-codes.md +268 -0
- package/.aether/docs/known-issues.md +233 -0
- package/.aether/docs/pheromones.md +205 -0
- package/.aether/docs/queen-commands.md +97 -0
- package/.aether/exchange/colony-registry.xml +11 -0
- package/.aether/exchange/pheromone-xml.sh +575 -0
- package/.aether/exchange/pheromones.xml +87 -0
- package/.aether/exchange/queen-wisdom.xml +14 -0
- package/.aether/exchange/registry-xml.sh +273 -0
- package/.aether/exchange/wisdom-xml.sh +319 -0
- package/.aether/midden/approach-changes.md +5 -0
- package/.aether/midden/build-failures.md +5 -0
- package/.aether/midden/test-failures.md +5 -0
- package/.aether/model-profiles.yaml +100 -0
- package/.aether/rules/aether-colony.md +134 -0
- package/.aether/schemas/aether-types.xsd +255 -0
- package/.aether/schemas/colony-registry.xsd +309 -0
- package/.aether/schemas/example-prompt-builder.xml +234 -0
- package/.aether/schemas/pheromone.xsd +163 -0
- package/.aether/schemas/prompt.xsd +416 -0
- package/.aether/schemas/queen-wisdom.xsd +325 -0
- package/.aether/schemas/worker-priming.xsd +276 -0
- package/.aether/templates/QUEEN.md.template +79 -0
- package/.aether/templates/colony-state-reset.jq.template +22 -0
- package/.aether/templates/colony-state.template.json +35 -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 +7 -0
- package/.aether/templates/pheromones.template.json +6 -0
- package/.aether/templates/session.template.json +9 -0
- package/.aether/utils/atomic-write.sh +219 -0
- package/.aether/utils/chamber-compare.sh +193 -0
- package/.aether/utils/chamber-utils.sh +297 -0
- package/.aether/utils/colorize-log.sh +132 -0
- package/.aether/utils/error-handler.sh +212 -0
- package/.aether/utils/file-lock.sh +158 -0
- package/.aether/utils/queen-to-md.xsl +395 -0
- package/.aether/utils/semantic-cli.sh +413 -0
- package/.aether/utils/spawn-tree.sh +428 -0
- package/.aether/utils/spawn-with-model.sh +56 -0
- package/.aether/utils/state-loader.sh +215 -0
- package/.aether/utils/swarm-display.sh +268 -0
- package/.aether/utils/watch-spawn-tree.sh +253 -0
- package/.aether/utils/xml-compose.sh +253 -0
- package/.aether/utils/xml-convert.sh +273 -0
- package/.aether/utils/xml-core.sh +186 -0
- package/.aether/utils/xml-query.sh +201 -0
- package/.aether/utils/xml-utils.sh +110 -0
- package/.aether/workers.md +765 -0
- package/.claude/agents/ant/aether-ambassador.md +264 -0
- package/.claude/agents/ant/aether-archaeologist.md +322 -0
- package/.claude/agents/ant/aether-auditor.md +266 -0
- package/.claude/agents/ant/aether-builder.md +187 -0
- package/.claude/agents/ant/aether-chaos.md +268 -0
- package/.claude/agents/ant/aether-chronicler.md +304 -0
- package/.claude/agents/ant/aether-gatekeeper.md +325 -0
- package/.claude/agents/ant/aether-includer.md +373 -0
- package/.claude/agents/ant/aether-keeper.md +271 -0
- package/.claude/agents/ant/aether-measurer.md +317 -0
- package/.claude/agents/ant/aether-probe.md +210 -0
- package/.claude/agents/ant/aether-queen.md +325 -0
- package/.claude/agents/ant/aether-route-setter.md +173 -0
- package/.claude/agents/ant/aether-sage.md +353 -0
- package/.claude/agents/ant/aether-scout.md +142 -0
- package/.claude/agents/ant/aether-surveyor-disciplines.md +416 -0
- package/.claude/agents/ant/aether-surveyor-nest.md +354 -0
- package/.claude/agents/ant/aether-surveyor-pathogens.md +288 -0
- package/.claude/agents/ant/aether-surveyor-provisions.md +359 -0
- package/.claude/agents/ant/aether-tracker.md +265 -0
- package/.claude/agents/ant/aether-watcher.md +244 -0
- package/.claude/agents/ant/aether-weaver.md +247 -0
- package/.claude/commands/ant/archaeology.md +341 -0
- package/.claude/commands/ant/build.md +1160 -0
- package/.claude/commands/ant/chaos.md +349 -0
- package/.claude/commands/ant/colonize.md +270 -0
- package/.claude/commands/ant/continue.md +1070 -0
- package/.claude/commands/ant/council.md +309 -0
- package/.claude/commands/ant/dream.md +265 -0
- package/.claude/commands/ant/entomb.md +487 -0
- package/.claude/commands/ant/feedback.md +78 -0
- package/.claude/commands/ant/flag.md +139 -0
- package/.claude/commands/ant/flags.md +155 -0
- package/.claude/commands/ant/focus.md +58 -0
- package/.claude/commands/ant/help.md +122 -0
- package/.claude/commands/ant/history.md +137 -0
- package/.claude/commands/ant/init.md +409 -0
- package/.claude/commands/ant/interpret.md +267 -0
- package/.claude/commands/ant/lay-eggs.md +201 -0
- package/.claude/commands/ant/maturity.md +102 -0
- package/.claude/commands/ant/memory-details.md +77 -0
- package/.claude/commands/ant/migrate-state.md +165 -0
- package/.claude/commands/ant/oracle.md +387 -0
- package/.claude/commands/ant/organize.md +227 -0
- package/.claude/commands/ant/pause-colony.md +247 -0
- package/.claude/commands/ant/phase.md +126 -0
- package/.claude/commands/ant/plan.md +544 -0
- package/.claude/commands/ant/redirect.md +58 -0
- package/.claude/commands/ant/resume-colony.md +182 -0
- package/.claude/commands/ant/resume.md +363 -0
- package/.claude/commands/ant/seal.md +306 -0
- package/.claude/commands/ant/status.md +272 -0
- package/.claude/commands/ant/swarm.md +361 -0
- package/.claude/commands/ant/tunnels.md +425 -0
- package/.claude/commands/ant/update.md +209 -0
- package/.claude/commands/ant/verify-castes.md +95 -0
- package/.claude/commands/ant/watch.md +238 -0
- package/.opencode/agents/aether-ambassador.md +140 -0
- package/.opencode/agents/aether-archaeologist.md +108 -0
- package/.opencode/agents/aether-auditor.md +144 -0
- package/.opencode/agents/aether-builder.md +184 -0
- package/.opencode/agents/aether-chaos.md +115 -0
- package/.opencode/agents/aether-chronicler.md +122 -0
- package/.opencode/agents/aether-gatekeeper.md +116 -0
- package/.opencode/agents/aether-includer.md +117 -0
- package/.opencode/agents/aether-keeper.md +177 -0
- package/.opencode/agents/aether-measurer.md +128 -0
- package/.opencode/agents/aether-probe.md +133 -0
- package/.opencode/agents/aether-queen.md +286 -0
- package/.opencode/agents/aether-route-setter.md +130 -0
- package/.opencode/agents/aether-sage.md +106 -0
- package/.opencode/agents/aether-scout.md +101 -0
- package/.opencode/agents/aether-surveyor-disciplines.md +386 -0
- package/.opencode/agents/aether-surveyor-nest.md +324 -0
- package/.opencode/agents/aether-surveyor-pathogens.md +259 -0
- package/.opencode/agents/aether-surveyor-provisions.md +329 -0
- package/.opencode/agents/aether-tracker.md +137 -0
- package/.opencode/agents/aether-watcher.md +174 -0
- package/.opencode/agents/aether-weaver.md +130 -0
- package/.opencode/commands/ant/archaeology.md +338 -0
- package/.opencode/commands/ant/build.md +1200 -0
- package/.opencode/commands/ant/chaos.md +346 -0
- package/.opencode/commands/ant/colonize.md +202 -0
- package/.opencode/commands/ant/continue.md +938 -0
- package/.opencode/commands/ant/council.md +305 -0
- package/.opencode/commands/ant/dream.md +262 -0
- package/.opencode/commands/ant/entomb.md +367 -0
- package/.opencode/commands/ant/feedback.md +80 -0
- package/.opencode/commands/ant/flag.md +137 -0
- package/.opencode/commands/ant/flags.md +153 -0
- package/.opencode/commands/ant/focus.md +56 -0
- package/.opencode/commands/ant/help.md +124 -0
- package/.opencode/commands/ant/history.md +127 -0
- package/.opencode/commands/ant/init.md +337 -0
- package/.opencode/commands/ant/interpret.md +256 -0
- package/.opencode/commands/ant/lay-eggs.md +141 -0
- package/.opencode/commands/ant/maturity.md +92 -0
- package/.opencode/commands/ant/memory-details.md +77 -0
- package/.opencode/commands/ant/migrate-state.md +153 -0
- package/.opencode/commands/ant/oracle.md +338 -0
- package/.opencode/commands/ant/organize.md +224 -0
- package/.opencode/commands/ant/pause-colony.md +220 -0
- package/.opencode/commands/ant/phase.md +123 -0
- package/.opencode/commands/ant/plan.md +531 -0
- package/.opencode/commands/ant/redirect.md +67 -0
- package/.opencode/commands/ant/resume-colony.md +178 -0
- package/.opencode/commands/ant/resume.md +363 -0
- package/.opencode/commands/ant/seal.md +247 -0
- package/.opencode/commands/ant/status.md +272 -0
- package/.opencode/commands/ant/swarm.md +357 -0
- package/.opencode/commands/ant/tunnels.md +406 -0
- package/.opencode/commands/ant/update.md +191 -0
- package/.opencode/commands/ant/verify-castes.md +85 -0
- package/.opencode/commands/ant/watch.md +220 -0
- package/.opencode/opencode.json +3 -0
- package/CHANGELOG.md +325 -0
- package/DISCLAIMER.md +74 -0
- package/LICENSE +21 -0
- package/README.md +258 -0
- package/bin/cli.js +2436 -0
- package/bin/generate-commands.sh +291 -0
- package/bin/lib/caste-colors.js +57 -0
- package/bin/lib/colors.js +76 -0
- package/bin/lib/errors.js +255 -0
- package/bin/lib/event-types.js +190 -0
- package/bin/lib/file-lock.js +695 -0
- package/bin/lib/init.js +454 -0
- package/bin/lib/logger.js +242 -0
- package/bin/lib/model-profiles.js +445 -0
- package/bin/lib/model-verify.js +288 -0
- package/bin/lib/nestmate-loader.js +130 -0
- package/bin/lib/proxy-health.js +253 -0
- package/bin/lib/spawn-logger.js +266 -0
- package/bin/lib/state-guard.js +602 -0
- package/bin/lib/state-sync.js +516 -0
- package/bin/lib/telemetry.js +441 -0
- package/bin/lib/update-transaction.js +1454 -0
- package/bin/npx-install.js +178 -0
- package/bin/sync-to-runtime.sh +6 -0
- package/bin/validate-package.sh +88 -0
- package/package.json +70 -0
|
@@ -0,0 +1,309 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<!--
|
|
3
|
+
Aether Colony Registry Schema
|
|
4
|
+
|
|
5
|
+
Defines the structure for multi-colony registry XML documents.
|
|
6
|
+
Used for tracking colony lineage, ancestry, and cross-colony relationships.
|
|
7
|
+
|
|
8
|
+
Version: 1.0.0
|
|
9
|
+
Purpose: Eternal memory - colony registry with pheromone inheritance tracking
|
|
10
|
+
-->
|
|
11
|
+
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
|
12
|
+
elementFormDefault="qualified">
|
|
13
|
+
|
|
14
|
+
<!-- ============================================ -->
|
|
15
|
+
<!-- Simple Types -->
|
|
16
|
+
<!-- ============================================ -->
|
|
17
|
+
|
|
18
|
+
<!-- Colony ID: alphanumeric with hyphens, 3-64 chars -->
|
|
19
|
+
<xs:simpleType name="colonyIdType">
|
|
20
|
+
<xs:restriction base="xs:string">
|
|
21
|
+
<xs:pattern value="[a-zA-Z0-9][a-zA-Z0-9-]{2,63}"/>
|
|
22
|
+
<xs:minLength value="3"/>
|
|
23
|
+
<xs:maxLength value="64"/>
|
|
24
|
+
</xs:restriction>
|
|
25
|
+
</xs:simpleType>
|
|
26
|
+
|
|
27
|
+
<!-- Colony Status: active, paused, or archived -->
|
|
28
|
+
<xs:simpleType name="colonyStatusType">
|
|
29
|
+
<xs:restriction base="xs:string">
|
|
30
|
+
<xs:enumeration value="active"/>
|
|
31
|
+
<xs:enumeration value="paused"/>
|
|
32
|
+
<xs:enumeration value="archived"/>
|
|
33
|
+
</xs:restriction>
|
|
34
|
+
</xs:simpleType>
|
|
35
|
+
|
|
36
|
+
<!-- ISO 8601 timestamp -->
|
|
37
|
+
<xs:simpleType name="timestampType">
|
|
38
|
+
<xs:restriction base="xs:string">
|
|
39
|
+
<xs:pattern value="\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?(Z|[+-]\d{2}:\d{2})?"/>
|
|
40
|
+
</xs:restriction>
|
|
41
|
+
</xs:simpleType>
|
|
42
|
+
|
|
43
|
+
<!-- Semantic version string -->
|
|
44
|
+
<xs:simpleType name="versionType">
|
|
45
|
+
<xs:restriction base="xs:string">
|
|
46
|
+
<xs:pattern value="\d+\.\d+\.\d+(-[a-zA-Z0-9.-]+)?(\+[a-zA-Z0-9.-]+)?"/>
|
|
47
|
+
</xs:restriction>
|
|
48
|
+
</xs:simpleType>
|
|
49
|
+
|
|
50
|
+
<!-- Pheromone strength: 0.0 to 1.0 -->
|
|
51
|
+
<xs:simpleType name="pheromoneStrengthType">
|
|
52
|
+
<xs:restriction base="xs:decimal">
|
|
53
|
+
<xs:minInclusive value="0.0"/>
|
|
54
|
+
<xs:maxInclusive value="1.0"/>
|
|
55
|
+
<xs:fractionDigits value="3"/>
|
|
56
|
+
</xs:restriction>
|
|
57
|
+
</xs:simpleType>
|
|
58
|
+
|
|
59
|
+
<!-- Relationship type between colonies -->
|
|
60
|
+
<xs:simpleType name="relationshipType">
|
|
61
|
+
<xs:restriction base="xs:string">
|
|
62
|
+
<xs:enumeration value="parent"/>
|
|
63
|
+
<xs:enumeration value="child"/>
|
|
64
|
+
<xs:enumeration value="sibling"/>
|
|
65
|
+
<xs:enumeration value="fork"/>
|
|
66
|
+
<xs:enumeration value="merge"/>
|
|
67
|
+
<xs:enumeration value="reference"/>
|
|
68
|
+
</xs:restriction>
|
|
69
|
+
</xs:simpleType>
|
|
70
|
+
|
|
71
|
+
<!-- Pheromone type classification -->
|
|
72
|
+
<xs:simpleType name="pheromoneTypeEnum">
|
|
73
|
+
<xs:restriction base="xs:string">
|
|
74
|
+
<xs:enumeration value="focus"/>
|
|
75
|
+
<xs:enumeration value="redirect"/>
|
|
76
|
+
<xs:enumeration value="feedback"/>
|
|
77
|
+
</xs:restriction>
|
|
78
|
+
</xs:simpleType>
|
|
79
|
+
|
|
80
|
+
<!-- ============================================ -->
|
|
81
|
+
<!-- Complex Types -->
|
|
82
|
+
<!-- ============================================ -->
|
|
83
|
+
|
|
84
|
+
<!-- Pheromone entry: inherited wisdom from parent colony -->
|
|
85
|
+
<xs:complexType name="pheromoneType">
|
|
86
|
+
<xs:sequence>
|
|
87
|
+
<xs:element name="key" type="xs:string"/>
|
|
88
|
+
<xs:element name="value" type="xs:string"/>
|
|
89
|
+
<xs:element name="strength" type="pheromoneStrengthType"/>
|
|
90
|
+
<xs:element name="inherited-at" type="timestampType"/>
|
|
91
|
+
<xs:element name="source-colony" type="colonyIdType"/>
|
|
92
|
+
</xs:sequence>
|
|
93
|
+
<xs:attribute name="type" type="pheromoneTypeEnum" use="optional" default="feedback"/>
|
|
94
|
+
</xs:complexType>
|
|
95
|
+
|
|
96
|
+
<!-- Ancestor entry for ancestry chain -->
|
|
97
|
+
<xs:complexType name="ancestorType">
|
|
98
|
+
<xs:simpleContent>
|
|
99
|
+
<xs:extension base="colonyIdType">
|
|
100
|
+
<xs:attribute name="generation" type="xs:nonNegativeInteger" use="required"/>
|
|
101
|
+
<xs:attribute name="relationship" type="relationshipType" use="optional" default="parent"/>
|
|
102
|
+
</xs:extension>
|
|
103
|
+
</xs:simpleContent>
|
|
104
|
+
</xs:complexType>
|
|
105
|
+
|
|
106
|
+
<!-- Lineage entry: ancestry tracking -->
|
|
107
|
+
<xs:complexType name="lineageType">
|
|
108
|
+
<xs:sequence>
|
|
109
|
+
<xs:element name="parent-colony" type="colonyIdType" minOccurs="0" maxOccurs="unbounded"/>
|
|
110
|
+
<xs:element name="forked-from" type="colonyIdType" minOccurs="0"/>
|
|
111
|
+
<xs:element name="generation" type="xs:positiveInteger" minOccurs="0"/>
|
|
112
|
+
<xs:element name="ancestry-chain" minOccurs="0">
|
|
113
|
+
<xs:complexType>
|
|
114
|
+
<xs:sequence>
|
|
115
|
+
<xs:element name="ancestor" type="ancestorType" maxOccurs="unbounded"/>
|
|
116
|
+
</xs:sequence>
|
|
117
|
+
</xs:complexType>
|
|
118
|
+
</xs:element>
|
|
119
|
+
</xs:sequence>
|
|
120
|
+
</xs:complexType>
|
|
121
|
+
|
|
122
|
+
<!-- Metadata entry key-value pair -->
|
|
123
|
+
<xs:complexType name="metadataEntryType">
|
|
124
|
+
<xs:sequence>
|
|
125
|
+
<xs:element name="key" type="xs:string"/>
|
|
126
|
+
<xs:element name="value" type="xs:string"/>
|
|
127
|
+
</xs:sequence>
|
|
128
|
+
</xs:complexType>
|
|
129
|
+
|
|
130
|
+
<!-- Relationship entry: connections to other colonies -->
|
|
131
|
+
<xs:complexType name="relationshipEntryType">
|
|
132
|
+
<xs:sequence>
|
|
133
|
+
<xs:element name="target-colony" type="colonyIdType"/>
|
|
134
|
+
<xs:element name="relationship" type="relationshipType"/>
|
|
135
|
+
<xs:element name="established-at" type="timestampType"/>
|
|
136
|
+
<xs:element name="metadata" minOccurs="0">
|
|
137
|
+
<xs:complexType>
|
|
138
|
+
<xs:sequence>
|
|
139
|
+
<xs:element name="entry" type="metadataEntryType" maxOccurs="unbounded"/>
|
|
140
|
+
</xs:sequence>
|
|
141
|
+
</xs:complexType>
|
|
142
|
+
</xs:element>
|
|
143
|
+
</xs:sequence>
|
|
144
|
+
</xs:complexType>
|
|
145
|
+
|
|
146
|
+
<!-- Pheromones container -->
|
|
147
|
+
<xs:complexType name="pheromonesContainerType">
|
|
148
|
+
<xs:sequence>
|
|
149
|
+
<xs:element name="pheromone" type="pheromoneType" minOccurs="0" maxOccurs="unbounded"/>
|
|
150
|
+
</xs:sequence>
|
|
151
|
+
<xs:attribute name="count" type="xs:nonNegativeInteger" use="optional"/>
|
|
152
|
+
</xs:complexType>
|
|
153
|
+
|
|
154
|
+
<!-- Relationships container -->
|
|
155
|
+
<xs:complexType name="relationshipsContainerType">
|
|
156
|
+
<xs:sequence>
|
|
157
|
+
<xs:element name="relationship" type="relationshipEntryType" maxOccurs="unbounded"/>
|
|
158
|
+
</xs:sequence>
|
|
159
|
+
</xs:complexType>
|
|
160
|
+
|
|
161
|
+
<!-- Tags container -->
|
|
162
|
+
<xs:complexType name="tagsContainerType">
|
|
163
|
+
<xs:sequence>
|
|
164
|
+
<xs:element name="tag" type="xs:string" maxOccurs="unbounded"/>
|
|
165
|
+
</xs:sequence>
|
|
166
|
+
</xs:complexType>
|
|
167
|
+
|
|
168
|
+
<!-- Attributes container -->
|
|
169
|
+
<xs:complexType name="attributesContainerType">
|
|
170
|
+
<xs:sequence>
|
|
171
|
+
<xs:element name="attribute" type="metadataEntryType" maxOccurs="unbounded"/>
|
|
172
|
+
</xs:sequence>
|
|
173
|
+
</xs:complexType>
|
|
174
|
+
|
|
175
|
+
<!-- Colony metadata -->
|
|
176
|
+
<xs:complexType name="colonyMetadataType">
|
|
177
|
+
<xs:sequence>
|
|
178
|
+
<xs:element name="schema-version" type="versionType"/>
|
|
179
|
+
<xs:element name="tags" type="tagsContainerType" minOccurs="0"/>
|
|
180
|
+
<xs:element name="attributes" type="attributesContainerType" minOccurs="0"/>
|
|
181
|
+
</xs:sequence>
|
|
182
|
+
</xs:complexType>
|
|
183
|
+
|
|
184
|
+
<!-- Colony entry: single colony definition -->
|
|
185
|
+
<xs:complexType name="colonyType">
|
|
186
|
+
<xs:sequence>
|
|
187
|
+
<!-- Identity -->
|
|
188
|
+
<xs:element name="id" type="colonyIdType"/>
|
|
189
|
+
<xs:element name="name" type="xs:string"/>
|
|
190
|
+
<xs:element name="description" type="xs:string" minOccurs="0"/>
|
|
191
|
+
|
|
192
|
+
<!-- Location -->
|
|
193
|
+
<xs:element name="path" type="xs:string"/>
|
|
194
|
+
<xs:element name="repository-url" type="xs:anyURI" minOccurs="0"/>
|
|
195
|
+
|
|
196
|
+
<!-- Status -->
|
|
197
|
+
<xs:element name="status" type="colonyStatusType"/>
|
|
198
|
+
<xs:element name="created-at" type="timestampType"/>
|
|
199
|
+
<xs:element name="last-active" type="timestampType"/>
|
|
200
|
+
|
|
201
|
+
<!-- Lineage -->
|
|
202
|
+
<xs:element name="lineage" type="lineageType" minOccurs="0"/>
|
|
203
|
+
|
|
204
|
+
<!-- Inherited pheromones -->
|
|
205
|
+
<xs:element name="pheromones-inherited" type="pheromonesContainerType" minOccurs="0"/>
|
|
206
|
+
|
|
207
|
+
<!-- Relationships to other colonies -->
|
|
208
|
+
<xs:element name="relationships" type="relationshipsContainerType" minOccurs="0"/>
|
|
209
|
+
|
|
210
|
+
<!-- Metadata -->
|
|
211
|
+
<xs:element name="metadata" type="colonyMetadataType" minOccurs="0"/>
|
|
212
|
+
</xs:sequence>
|
|
213
|
+
</xs:complexType>
|
|
214
|
+
|
|
215
|
+
<!-- Registry info -->
|
|
216
|
+
<xs:complexType name="registryInfoType">
|
|
217
|
+
<xs:sequence>
|
|
218
|
+
<xs:element name="name" type="xs:string"/>
|
|
219
|
+
<xs:element name="description" type="xs:string" minOccurs="0"/>
|
|
220
|
+
<xs:element name="version" type="versionType"/>
|
|
221
|
+
<xs:element name="created-at" type="timestampType"/>
|
|
222
|
+
<xs:element name="updated-at" type="timestampType"/>
|
|
223
|
+
<xs:element name="total-colonies" type="xs:nonNegativeInteger"/>
|
|
224
|
+
</xs:sequence>
|
|
225
|
+
</xs:complexType>
|
|
226
|
+
|
|
227
|
+
<!-- Colonies container -->
|
|
228
|
+
<xs:complexType name="coloniesContainerType">
|
|
229
|
+
<xs:sequence>
|
|
230
|
+
<xs:element name="colony" type="colonyType" maxOccurs="unbounded"/>
|
|
231
|
+
</xs:sequence>
|
|
232
|
+
</xs:complexType>
|
|
233
|
+
|
|
234
|
+
<!-- Global relationship entry -->
|
|
235
|
+
<xs:complexType name="globalRelationshipType">
|
|
236
|
+
<xs:sequence>
|
|
237
|
+
<xs:element name="from-colony" type="colonyIdType"/>
|
|
238
|
+
<xs:element name="to-colony" type="colonyIdType"/>
|
|
239
|
+
<xs:element name="type" type="relationshipType"/>
|
|
240
|
+
<xs:element name="description" type="xs:string" minOccurs="0"/>
|
|
241
|
+
</xs:sequence>
|
|
242
|
+
</xs:complexType>
|
|
243
|
+
|
|
244
|
+
<!-- Global relationships container -->
|
|
245
|
+
<xs:complexType name="globalRelationshipsContainerType">
|
|
246
|
+
<xs:sequence>
|
|
247
|
+
<xs:element name="relationship" type="globalRelationshipType" maxOccurs="unbounded"/>
|
|
248
|
+
</xs:sequence>
|
|
249
|
+
</xs:complexType>
|
|
250
|
+
|
|
251
|
+
<!-- ============================================ -->
|
|
252
|
+
<!-- Root Element -->
|
|
253
|
+
<!-- ============================================ -->
|
|
254
|
+
|
|
255
|
+
<xs:element name="colony-registry">
|
|
256
|
+
<xs:complexType>
|
|
257
|
+
<xs:sequence>
|
|
258
|
+
<!-- Registry metadata -->
|
|
259
|
+
<xs:element name="registry-info" type="registryInfoType"/>
|
|
260
|
+
|
|
261
|
+
<!-- Colony entries -->
|
|
262
|
+
<xs:element name="colonies" type="coloniesContainerType"/>
|
|
263
|
+
|
|
264
|
+
<!-- Global relationships (optional) -->
|
|
265
|
+
<xs:element name="global-relationships" type="globalRelationshipsContainerType" minOccurs="0"/>
|
|
266
|
+
</xs:sequence>
|
|
267
|
+
<xs:attribute name="version" type="versionType" use="required"/>
|
|
268
|
+
</xs:complexType>
|
|
269
|
+
|
|
270
|
+
<!-- Key constraints - colony IDs must be unique -->
|
|
271
|
+
<xs:key name="colonyIdKey">
|
|
272
|
+
<xs:selector xpath="colonies/colony"/>
|
|
273
|
+
<xs:field xpath="id"/>
|
|
274
|
+
</xs:key>
|
|
275
|
+
|
|
276
|
+
<!-- Reference constraints for lineage - parent colonies must exist -->
|
|
277
|
+
<xs:keyref name="parentColonyRef" refer="colonyIdKey">
|
|
278
|
+
<xs:selector xpath="colonies/colony/lineage/parent-colony"/>
|
|
279
|
+
<xs:field xpath="."/>
|
|
280
|
+
</xs:keyref>
|
|
281
|
+
|
|
282
|
+
<xs:keyref name="forkedFromRef" refer="colonyIdKey">
|
|
283
|
+
<xs:selector xpath="colonies/colony/lineage/forked-from"/>
|
|
284
|
+
<xs:field xpath="."/>
|
|
285
|
+
</xs:keyref>
|
|
286
|
+
|
|
287
|
+
<xs:keyref name="ancestorRef" refer="colonyIdKey">
|
|
288
|
+
<xs:selector xpath="colonies/colony/lineage/ancestry-chain/ancestor"/>
|
|
289
|
+
<xs:field xpath="."/>
|
|
290
|
+
</xs:keyref>
|
|
291
|
+
|
|
292
|
+
<!-- Reference constraints for relationships -->
|
|
293
|
+
<xs:keyref name="relationshipTargetRef" refer="colonyIdKey">
|
|
294
|
+
<xs:selector xpath="colonies/colony/relationships/relationship/target-colony"/>
|
|
295
|
+
<xs:field xpath="."/>
|
|
296
|
+
</xs:keyref>
|
|
297
|
+
|
|
298
|
+
<xs:keyref name="globalFromRef" refer="colonyIdKey">
|
|
299
|
+
<xs:selector xpath="global-relationships/relationship/from-colony"/>
|
|
300
|
+
<xs:field xpath="."/>
|
|
301
|
+
</xs:keyref>
|
|
302
|
+
|
|
303
|
+
<xs:keyref name="globalToRef" refer="colonyIdKey">
|
|
304
|
+
<xs:selector xpath="global-relationships/relationship/to-colony"/>
|
|
305
|
+
<xs:field xpath="."/>
|
|
306
|
+
</xs:keyref>
|
|
307
|
+
</xs:element>
|
|
308
|
+
|
|
309
|
+
</xs:schema>
|
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<!--
|
|
3
|
+
Example Aether Prompt: Builder Worker
|
|
4
|
+
|
|
5
|
+
This demonstrates the structured XML prompt format for colony workers.
|
|
6
|
+
XML-structured prompts are more reliable and parseable than free-form text.
|
|
7
|
+
-->
|
|
8
|
+
<aether-prompt version="1.0.0">
|
|
9
|
+
|
|
10
|
+
<metadata>
|
|
11
|
+
<version>1.0.0</version>
|
|
12
|
+
<author>Aether Colony System</author>
|
|
13
|
+
<created>2026-02-16T10:00:00Z</created>
|
|
14
|
+
<modified>2026-02-16T10:00:00Z</modified>
|
|
15
|
+
<tags>
|
|
16
|
+
<tag>worker</tag>
|
|
17
|
+
<tag>builder</tag>
|
|
18
|
+
<tag>implementation</tag>
|
|
19
|
+
</tags>
|
|
20
|
+
</metadata>
|
|
21
|
+
|
|
22
|
+
<name>builder-worker</name>
|
|
23
|
+
<type>worker</type>
|
|
24
|
+
<caste>builder</caste>
|
|
25
|
+
|
|
26
|
+
<objective>
|
|
27
|
+
Implement features, fix bugs, or improve code quality according to specifications
|
|
28
|
+
while following the Iron Laws of colony development and respecting existing
|
|
29
|
+
codebase patterns.
|
|
30
|
+
</objective>
|
|
31
|
+
|
|
32
|
+
<context>
|
|
33
|
+
<background>
|
|
34
|
+
Builders are the primary implementation workers in the Aether colony system.
|
|
35
|
+
They receive specifications from route-setters and implement working code
|
|
36
|
+
that meets success criteria. Builders work within the constraints defined
|
|
37
|
+
by the Queen's redirects and the colony's established patterns.
|
|
38
|
+
</background>
|
|
39
|
+
<assumptions>
|
|
40
|
+
<assumption>Specification is complete enough to begin implementation</assumption>
|
|
41
|
+
<assumption>Required tools and dependencies are available</assumption>
|
|
42
|
+
<assumption>Test framework is configured and working</assumption>
|
|
43
|
+
</assumptions>
|
|
44
|
+
<dependencies>
|
|
45
|
+
<dependency type="data">COLONY_STATE.json (current phase and tasks)</dependency>
|
|
46
|
+
<dependency type="file">workers.md (Iron Laws reference)</dependency>
|
|
47
|
+
<dependency type="command">Git for version control</dependency>
|
|
48
|
+
</dependencies>
|
|
49
|
+
</context>
|
|
50
|
+
|
|
51
|
+
<requirements>
|
|
52
|
+
<requirement id="req_1" priority="critical">
|
|
53
|
+
<description>Follow Test-Driven Development (TDD) methodology</description>
|
|
54
|
+
<rationale>Ensures code is testable and specifications are clear</rationale>
|
|
55
|
+
</requirement>
|
|
56
|
+
<requirement id="req_2" priority="high">
|
|
57
|
+
<description>Write tests BEFORE implementation code</description>
|
|
58
|
+
<rationale>RED-GREEN-REFACTOR cycle produces better designs</rationale>
|
|
59
|
+
</requirement>
|
|
60
|
+
<requirement id="req_3" priority="high">
|
|
61
|
+
<description>All code must compile and tests must pass before marking complete</description>
|
|
62
|
+
<rationale>Prevents broken code from entering the codebase</rationale>
|
|
63
|
+
</requirement>
|
|
64
|
+
<requirement id="req_4" priority="normal">
|
|
65
|
+
<description>Match existing codebase patterns and conventions</description>
|
|
66
|
+
<rationale>Maintains consistency and readability</rationale>
|
|
67
|
+
</requirement>
|
|
68
|
+
<requirement id="req_5" priority="normal">
|
|
69
|
+
<description>Document public APIs and complex logic</description>
|
|
70
|
+
<rationale>Future maintainers need context</rationale>
|
|
71
|
+
</requirement>
|
|
72
|
+
</requirements>
|
|
73
|
+
|
|
74
|
+
<constraints>
|
|
75
|
+
<constraint id="cons_1" strength="must-not">
|
|
76
|
+
<rule>Never commit broken or failing code</rule>
|
|
77
|
+
<enforcement>Watcher verification will catch this</enforcement>
|
|
78
|
+
</constraint>
|
|
79
|
+
<constraint id="cons_2" strength="must">
|
|
80
|
+
<rule>Respect protected paths defined in security rules</rule>
|
|
81
|
+
<exception>None - security boundaries are absolute</exception>
|
|
82
|
+
</constraint>
|
|
83
|
+
<constraint id="cons_3" strength="should">
|
|
84
|
+
<rule>Keep functions under 50 lines when possible</rule>
|
|
85
|
+
<exception>Complex switch statements or configuration tables</exception>
|
|
86
|
+
</constraint>
|
|
87
|
+
<constraint id="cons_4" strength="should">
|
|
88
|
+
<rule>Extract helpers for repeated patterns</rule>
|
|
89
|
+
</constraint>
|
|
90
|
+
</constraints>
|
|
91
|
+
|
|
92
|
+
<thinking>
|
|
93
|
+
<approach>
|
|
94
|
+
Research existing patterns first, then implement following TDD cycle.
|
|
95
|
+
When uncertain, consult the Archaeologist for historical context.
|
|
96
|
+
</approach>
|
|
97
|
+
<steps>
|
|
98
|
+
<step order="1" optional="false">
|
|
99
|
+
<description>Read and understand the specification</description>
|
|
100
|
+
<checkpoint>Can explain the requirement in my own words</checkpoint>
|
|
101
|
+
</step>
|
|
102
|
+
<step order="2" optional="false">
|
|
103
|
+
<description>Research existing patterns in the codebase</description>
|
|
104
|
+
<checkpoint>Found at least 2 similar implementations to learn from</checkpoint>
|
|
105
|
+
</step>
|
|
106
|
+
<step order="3" optional="false">
|
|
107
|
+
<description>Write failing test (RED phase)</description>
|
|
108
|
+
<checkpoint>Test fails with expected error message</checkpoint>
|
|
109
|
+
</step>
|
|
110
|
+
<step order="4" optional="false">
|
|
111
|
+
<description>Implement minimal code to pass (GREEN phase)</description>
|
|
112
|
+
<checkpoint>Test now passes</checkpoint>
|
|
113
|
+
</step>
|
|
114
|
+
<step order="5" optional="false">
|
|
115
|
+
<description>Refactor while keeping tests green (REFACTOR phase)</description>
|
|
116
|
+
<checkpoint>Code is cleaner, tests still pass</checkpoint>
|
|
117
|
+
</step>
|
|
118
|
+
<step order="6" optional="true">
|
|
119
|
+
<description>Check for nearby graveyards (failed attempts)</description>
|
|
120
|
+
<checkpoint>Understood why previous attempts failed (if any)</checkpoint>
|
|
121
|
+
</step>
|
|
122
|
+
</steps>
|
|
123
|
+
<pitfalls>
|
|
124
|
+
<pitfall>Jumping to implementation before understanding the problem</pitfall>
|
|
125
|
+
<pitfall>Skipping tests for "simple" changes</pitfall>
|
|
126
|
+
<pitfall>Over-engineering the solution</pitfall>
|
|
127
|
+
<pitfall>Ignoring existing patterns in the codebase</pitfall>
|
|
128
|
+
</pitfalls>
|
|
129
|
+
</thinking>
|
|
130
|
+
|
|
131
|
+
<tools>
|
|
132
|
+
<tool required="true">
|
|
133
|
+
<name>Glob</name>
|
|
134
|
+
<purpose>Find files matching patterns</purpose>
|
|
135
|
+
<when_to_use>When searching for existing implementations or files</when_to_use>
|
|
136
|
+
</tool>
|
|
137
|
+
<tool required="true">
|
|
138
|
+
<name>Grep</name>
|
|
139
|
+
<purpose>Search file contents for patterns</purpose>
|
|
140
|
+
<when_to_use>When looking for specific code patterns or function definitions</when_to_use>
|
|
141
|
+
</tool>
|
|
142
|
+
<tool required="true">
|
|
143
|
+
<name>Read</name>
|
|
144
|
+
<purpose>Read file contents</purpose>
|
|
145
|
+
<when_to_use>When examining existing code or specifications</when_to_use>
|
|
146
|
+
</tool>
|
|
147
|
+
<tool required="true">
|
|
148
|
+
<name>Edit</name>
|
|
149
|
+
<purpose>Modify existing files</purpose>
|
|
150
|
+
<when_to_use>When implementing changes to existing code</when_to_use>
|
|
151
|
+
</tool>
|
|
152
|
+
<tool required="true">
|
|
153
|
+
<name>Write</name>
|
|
154
|
+
<purpose>Create new files</purpose>
|
|
155
|
+
<when_to_use>When creating new modules or test files</when_to_use>
|
|
156
|
+
</tool>
|
|
157
|
+
<tool required="false">
|
|
158
|
+
<name>Bash</name>
|
|
159
|
+
<purpose>Execute shell commands</purpose>
|
|
160
|
+
<when_to_use>When running tests or build commands</when_to_use>
|
|
161
|
+
</tool>
|
|
162
|
+
</tools>
|
|
163
|
+
|
|
164
|
+
<output>
|
|
165
|
+
<format>Modified source code with tests</format>
|
|
166
|
+
<structure>
|
|
167
|
+
Implementation files following existing patterns,
|
|
168
|
+
Test files in appropriate test directory,
|
|
169
|
+
Activity log entry documenting work done
|
|
170
|
+
</structure>
|
|
171
|
+
<example>
|
|
172
|
+
After completing work:
|
|
173
|
+
- src/feature.js: New implementation with tests
|
|
174
|
+
- tests/feature.test.js: Test coverage
|
|
175
|
+
- Activity logged: "Builder-X implemented feature Y with N tests"
|
|
176
|
+
</example>
|
|
177
|
+
</output>
|
|
178
|
+
|
|
179
|
+
<verification>
|
|
180
|
+
<method>Run full test suite and verify success criteria</method>
|
|
181
|
+
<steps>
|
|
182
|
+
<step>Run unit tests for modified code</step>
|
|
183
|
+
<step>Run integration tests if affected</step>
|
|
184
|
+
<step>Check code coverage meets threshold</step>
|
|
185
|
+
<step>Verify no lint errors</step>
|
|
186
|
+
</steps>
|
|
187
|
+
<tools>
|
|
188
|
+
<tool>npm test</tool>
|
|
189
|
+
<tool>npm run lint</tool>
|
|
190
|
+
<tool>npm run coverage</tool>
|
|
191
|
+
</tools>
|
|
192
|
+
</verification>
|
|
193
|
+
|
|
194
|
+
<success_criteria>
|
|
195
|
+
<criterion id="crit_1" required="true">
|
|
196
|
+
<description>All tests pass</description>
|
|
197
|
+
<measure>npm test exits with code 0</measure>
|
|
198
|
+
</criterion>
|
|
199
|
+
<criterion id="crit_2" required="true">
|
|
200
|
+
<description>Code compiles without errors</description>
|
|
201
|
+
<measure>No TypeScript or build errors</measure>
|
|
202
|
+
</criterion>
|
|
203
|
+
<criterion id="crit_3" required="true">
|
|
204
|
+
<description>Specification requirements are met</description>
|
|
205
|
+
<measure>All acceptance criteria from spec pass</measure>
|
|
206
|
+
</criterion>
|
|
207
|
+
<criterion id="crit_4" required="false">
|
|
208
|
+
<description>Code coverage maintained or improved</description>
|
|
209
|
+
<measure>Coverage >= 80% for new code</measure>
|
|
210
|
+
</criterion>
|
|
211
|
+
<criterion id="crit_5" required="false">
|
|
212
|
+
<description>No lint warnings</description>
|
|
213
|
+
<measure>npm run lint produces no errors</measure>
|
|
214
|
+
</criterion>
|
|
215
|
+
</success_criteria>
|
|
216
|
+
|
|
217
|
+
<error_handling>
|
|
218
|
+
<on_failure>
|
|
219
|
+
Stop work, preserve state, document what was attempted and what failed.
|
|
220
|
+
Create a graveyard marker if the approach is abandoned.
|
|
221
|
+
</on_failure>
|
|
222
|
+
<escalation>
|
|
223
|
+
Escalate to Queen when: specification is unclear, test cannot be written,
|
|
224
|
+
existing patterns conflict with requirements, or blocked by external dependency.
|
|
225
|
+
</escalation>
|
|
226
|
+
<recovery_steps>
|
|
227
|
+
<step>Document current state and what failed</step>
|
|
228
|
+
<step>Check for existing graveyards on this task</step>
|
|
229
|
+
<step>Consider alternative approach or request clarification</step>
|
|
230
|
+
<step>Update activity log with failure and reason</step>
|
|
231
|
+
</recovery_steps>
|
|
232
|
+
</error_handling>
|
|
233
|
+
|
|
234
|
+
</aether-prompt>
|