@ncoderz/awa 1.7.2 → 1.8.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.
Files changed (155) hide show
  1. package/LICENSE +23 -16
  2. package/README.md +25 -27
  3. package/dist/{chunk-OQZTQ5ZI.js → chunk-LRQWZCYL.js} +1 -4
  4. package/dist/chunk-LRQWZCYL.js.map +1 -0
  5. package/dist/chunk-WGGMDWBE.js +760 -0
  6. package/dist/chunk-WGGMDWBE.js.map +1 -0
  7. package/dist/{config-WL3SLSP6.js → config-EJIXC7D7.js} +2 -2
  8. package/dist/index.js +1252 -452
  9. package/dist/index.js.map +1 -1
  10. package/dist/renumber-ZCI2H5HZ.js +9 -0
  11. package/dist/renumber-ZCI2H5HZ.js.map +1 -0
  12. package/package.json +13 -6
  13. package/templates/awa/.agent/skills/spec-merge/SKILL.md +3 -0
  14. package/templates/awa/.agent/skills/spec-tidy/SKILL.md +3 -0
  15. package/templates/awa/.agent/workflows/spec-merge.md +3 -0
  16. package/templates/awa/.agent/workflows/spec-tidy.md +3 -0
  17. package/templates/awa/.agents/skills/spec-merge/SKILL.md +3 -0
  18. package/templates/awa/.agents/skills/spec-tidy/SKILL.md +3 -0
  19. package/templates/awa/.awa/.agent/schemas/ALIGN_REPORT.schema.yaml +1 -1
  20. package/templates/awa/.awa/.agent/schemas/API.schema.yaml +1 -1
  21. package/templates/awa/.awa/.agent/schemas/ARCHITECTURE.schema.yaml +7 -0
  22. package/templates/awa/.awa/.agent/schemas/DESIGN.schema.yaml +1 -1
  23. package/templates/awa/.awa/.agent/schemas/{EXAMPLES.schema.yaml → EXAMPLE.schema.yaml} +4 -4
  24. package/templates/awa/.awa/.agent/schemas/FEAT.schema.yaml +8 -1
  25. package/templates/awa/.awa/.agent/schemas/PLAN.schema.yaml +1 -1
  26. package/templates/awa/.awa/.agent/schemas/README.schema.yaml +1 -1
  27. package/templates/awa/.awa/.agent/schemas/REQ.schema.yaml +1 -1
  28. package/templates/awa/.awa/.agent/schemas/TASK.schema.yaml +1 -1
  29. package/templates/awa/.claude/skills/spec-merge/SKILL.md +3 -0
  30. package/templates/awa/.claude/skills/spec-tidy/SKILL.md +3 -0
  31. package/templates/awa/.gemini/commands/spec-merge.md +3 -0
  32. package/templates/awa/.gemini/commands/spec-tidy.md +3 -0
  33. package/templates/awa/.gemini/skills/spec-merge/SKILL.md +3 -0
  34. package/templates/awa/.gemini/skills/spec-tidy/SKILL.md +3 -0
  35. package/templates/awa/.github/prompts/awa.spec-merge.prompt.md +8 -0
  36. package/templates/awa/.github/prompts/awa.spec-tidy.prompt.md +7 -0
  37. package/templates/awa/.github/skills/spec-merge/SKILL.md +3 -0
  38. package/templates/awa/.github/skills/spec-tidy/SKILL.md +3 -0
  39. package/templates/awa/.kilocode/skills/spec-merge/SKILL.md +3 -0
  40. package/templates/awa/.kilocode/skills/spec-tidy/SKILL.md +3 -0
  41. package/templates/awa/.kilocode/workflows/spec-merge.md +3 -0
  42. package/templates/awa/.kilocode/workflows/spec-tidy.md +3 -0
  43. package/templates/awa/.opencode/commands/spec-merge.md +3 -0
  44. package/templates/awa/.opencode/commands/spec-tidy.md +3 -0
  45. package/templates/awa/.opencode/skills/spec-merge/SKILL.md +3 -0
  46. package/templates/awa/.opencode/skills/spec-tidy/SKILL.md +3 -0
  47. package/templates/awa/.qwen/commands/spec-merge.md +3 -0
  48. package/templates/awa/.qwen/commands/spec-tidy.md +3 -0
  49. package/templates/awa/.qwen/skills/spec-merge/SKILL.md +3 -0
  50. package/templates/awa/.qwen/skills/spec-tidy/SKILL.md +3 -0
  51. package/templates/awa/.roo/skills/spec-merge/SKILL.md +3 -0
  52. package/templates/awa/.roo/skills/spec-tidy/SKILL.md +3 -0
  53. package/templates/awa/.windsurf/skills/spec-merge/SKILL.md +3 -0
  54. package/templates/awa/.windsurf/skills/spec-tidy/SKILL.md +3 -0
  55. package/templates/awa/_delete.txt +4 -0
  56. package/templates/awa/_partials/_cmd.spec-merge.md +6 -0
  57. package/templates/awa/_partials/_cmd.spec-tidy.md +5 -0
  58. package/templates/awa/_partials/_skill.spec-merge.md +6 -0
  59. package/templates/awa/_partials/_skill.spec-tidy.md +6 -0
  60. package/templates/awa/_partials/awa.align.md +1 -1
  61. package/templates/awa/_partials/awa.brainstorm.md +1 -1
  62. package/templates/awa/_partials/awa.code.md +1 -1
  63. package/templates/awa/_partials/awa.core.md +8 -4
  64. package/templates/awa/_partials/awa.design.md +3 -2
  65. package/templates/awa/_partials/awa.documentation.md +1 -1
  66. package/templates/awa/_partials/awa.examples.md +4 -4
  67. package/templates/awa/_partials/awa.feature.md +2 -1
  68. package/templates/awa/_partials/awa.plan.md +2 -2
  69. package/templates/awa/_partials/awa.requirements.md +4 -2
  70. package/templates/awa/_partials/awa.spec-merge.md +97 -0
  71. package/templates/awa/_partials/awa.spec.tidy.md +92 -0
  72. package/templates/awa/_partials/awa.tasks.md +1 -1
  73. package/templates/awa/_partials/awa.upgrade.md +3 -3
  74. package/templates/awa/_partials/awa.usage.md +74 -6
  75. package/templates/awa/_partials/awa.vibe.md +1 -1
  76. package/templates/awa/_tests/claude/.awa/.agent/awa.core.md +126 -0
  77. package/templates/awa/_tests/claude/.awa/.agent/schemas/ALIGN_REPORT.schema.yaml +83 -0
  78. package/templates/awa/_tests/claude/.awa/.agent/schemas/API.schema.yaml +7 -0
  79. package/templates/awa/_tests/claude/.awa/.agent/schemas/ARCHITECTURE.schema.yaml +257 -0
  80. package/templates/awa/_tests/claude/.awa/.agent/schemas/DESIGN.schema.yaml +351 -0
  81. package/templates/awa/_tests/claude/.awa/.agent/schemas/EXAMPLE.schema.yaml +89 -0
  82. package/templates/awa/_tests/claude/.awa/.agent/schemas/FEAT.schema.yaml +142 -0
  83. package/templates/awa/_tests/claude/.awa/.agent/schemas/PLAN.schema.yaml +146 -0
  84. package/templates/awa/_tests/claude/.awa/.agent/schemas/README.schema.yaml +137 -0
  85. package/templates/awa/_tests/claude/.awa/.agent/schemas/REQ.schema.yaml +160 -0
  86. package/templates/awa/_tests/claude/.awa/.agent/schemas/TASK.schema.yaml +204 -0
  87. package/templates/awa/_tests/claude/.claude/agents/awa.md +137 -0
  88. package/templates/awa/_tests/claude/.claude/skills/awa-align/SKILL.md +67 -0
  89. package/templates/awa/_tests/claude/.claude/skills/awa-architecture/SKILL.md +50 -0
  90. package/templates/awa/_tests/claude/.claude/skills/awa-brainstorm/SKILL.md +57 -0
  91. package/templates/awa/_tests/claude/.claude/skills/awa-check/SKILL.md +79 -0
  92. package/templates/awa/_tests/claude/.claude/skills/awa-code/SKILL.md +179 -0
  93. package/templates/awa/_tests/claude/.claude/skills/awa-design/SKILL.md +62 -0
  94. package/templates/awa/_tests/claude/.claude/skills/awa-documentation/SKILL.md +91 -0
  95. package/templates/awa/_tests/claude/.claude/skills/awa-examples/SKILL.md +58 -0
  96. package/templates/awa/_tests/claude/.claude/skills/awa-feature/SKILL.md +56 -0
  97. package/templates/awa/_tests/claude/.claude/skills/awa-plan/SKILL.md +53 -0
  98. package/templates/awa/_tests/claude/.claude/skills/awa-refactor/SKILL.md +53 -0
  99. package/templates/awa/_tests/claude/.claude/skills/awa-requirements/SKILL.md +58 -0
  100. package/templates/awa/_tests/claude/.claude/skills/awa-tasks/SKILL.md +158 -0
  101. package/templates/awa/_tests/claude/.claude/skills/awa-upgrade/SKILL.md +68 -0
  102. package/templates/awa/_tests/claude/.claude/skills/awa-usage/SKILL.md +368 -0
  103. package/templates/awa/_tests/claude/.claude/skills/awa-vibe/SKILL.md +72 -0
  104. package/templates/awa/_tests/claude/.claude/skills/spec-merge/SKILL.md +102 -0
  105. package/templates/awa/_tests/claude/.claude/skills/spec-tidy/SKILL.md +97 -0
  106. package/templates/awa/_tests/claude/CLAUDE.md +132 -0
  107. package/templates/awa/_tests/copilot/.awa/.agent/awa.core.md +126 -0
  108. package/templates/awa/_tests/copilot/.awa/.agent/schemas/ALIGN_REPORT.schema.yaml +83 -0
  109. package/templates/awa/_tests/copilot/.awa/.agent/schemas/API.schema.yaml +7 -0
  110. package/templates/awa/_tests/copilot/.awa/.agent/schemas/ARCHITECTURE.schema.yaml +257 -0
  111. package/templates/awa/_tests/copilot/.awa/.agent/schemas/DESIGN.schema.yaml +351 -0
  112. package/templates/awa/_tests/copilot/.awa/.agent/schemas/EXAMPLE.schema.yaml +89 -0
  113. package/templates/awa/_tests/copilot/.awa/.agent/schemas/FEAT.schema.yaml +142 -0
  114. package/templates/awa/_tests/copilot/.awa/.agent/schemas/PLAN.schema.yaml +146 -0
  115. package/templates/awa/_tests/copilot/.awa/.agent/schemas/README.schema.yaml +137 -0
  116. package/templates/awa/_tests/copilot/.awa/.agent/schemas/REQ.schema.yaml +160 -0
  117. package/templates/awa/_tests/copilot/.awa/.agent/schemas/TASK.schema.yaml +204 -0
  118. package/templates/awa/_tests/copilot/.github/agents/awa.agent.md +137 -0
  119. package/templates/awa/_tests/copilot/.github/prompts/awa.align.prompt.md +67 -0
  120. package/templates/awa/_tests/copilot/.github/prompts/awa.architecture.prompt.md +50 -0
  121. package/templates/awa/_tests/copilot/.github/prompts/awa.brainstorm.prompt.md +57 -0
  122. package/templates/awa/_tests/copilot/.github/prompts/awa.check.prompt.md +79 -0
  123. package/templates/awa/_tests/copilot/.github/prompts/awa.code.prompt.md +179 -0
  124. package/templates/awa/_tests/copilot/.github/prompts/awa.design.prompt.md +62 -0
  125. package/templates/awa/_tests/copilot/.github/prompts/awa.documentation.prompt.md +91 -0
  126. package/templates/awa/_tests/copilot/.github/prompts/awa.examples.prompt.md +58 -0
  127. package/templates/awa/_tests/copilot/.github/prompts/awa.feature.prompt.md +56 -0
  128. package/templates/awa/_tests/copilot/.github/prompts/awa.plan.prompt.md +53 -0
  129. package/templates/awa/_tests/copilot/.github/prompts/awa.refactor.prompt.md +53 -0
  130. package/templates/awa/_tests/copilot/.github/prompts/awa.requirements.prompt.md +58 -0
  131. package/templates/awa/_tests/copilot/.github/prompts/awa.spec-merge.prompt.md +102 -0
  132. package/templates/awa/_tests/copilot/.github/prompts/awa.spec-tidy.prompt.md +96 -0
  133. package/templates/awa/_tests/copilot/.github/prompts/awa.tasks.prompt.md +158 -0
  134. package/templates/awa/_tests/copilot/.github/prompts/awa.upgrade.prompt.md +68 -0
  135. package/templates/awa/_tests/copilot/.github/prompts/awa.vibe.prompt.md +72 -0
  136. package/templates/awa/_tests/copilot/.github/skills/awa-align/SKILL.md +67 -0
  137. package/templates/awa/_tests/copilot/.github/skills/awa-architecture/SKILL.md +50 -0
  138. package/templates/awa/_tests/copilot/.github/skills/awa-brainstorm/SKILL.md +57 -0
  139. package/templates/awa/_tests/copilot/.github/skills/awa-check/SKILL.md +79 -0
  140. package/templates/awa/_tests/copilot/.github/skills/awa-code/SKILL.md +179 -0
  141. package/templates/awa/_tests/copilot/.github/skills/awa-design/SKILL.md +62 -0
  142. package/templates/awa/_tests/copilot/.github/skills/awa-documentation/SKILL.md +91 -0
  143. package/templates/awa/_tests/copilot/.github/skills/awa-examples/SKILL.md +58 -0
  144. package/templates/awa/_tests/copilot/.github/skills/awa-feature/SKILL.md +56 -0
  145. package/templates/awa/_tests/copilot/.github/skills/awa-plan/SKILL.md +53 -0
  146. package/templates/awa/_tests/copilot/.github/skills/awa-refactor/SKILL.md +53 -0
  147. package/templates/awa/_tests/copilot/.github/skills/awa-requirements/SKILL.md +58 -0
  148. package/templates/awa/_tests/copilot/.github/skills/awa-tasks/SKILL.md +158 -0
  149. package/templates/awa/_tests/copilot/.github/skills/awa-upgrade/SKILL.md +68 -0
  150. package/templates/awa/_tests/copilot/.github/skills/awa-usage/SKILL.md +368 -0
  151. package/templates/awa/_tests/copilot/.github/skills/awa-vibe/SKILL.md +72 -0
  152. package/templates/awa/_tests/copilot/.github/skills/spec-merge/SKILL.md +102 -0
  153. package/templates/awa/_tests/copilot/.github/skills/spec-tidy/SKILL.md +97 -0
  154. package/dist/chunk-OQZTQ5ZI.js.map +0 -1
  155. /package/dist/{config-WL3SLSP6.js.map → config-EJIXC7D7.js.map} +0 -0
@@ -0,0 +1,102 @@
1
+ ---
2
+ name: spec-merge
3
+ description: Merge two feature codes into one. Use this when asked to combine, merge, or consolidate feature codes.
4
+ ---
5
+
6
+ # Merge Two Feature Codes
7
+
8
+ ## Bootstrap
9
+
10
+ <tool name="read_file">
11
+ <read path=".awa/.agent/awa.core.md" required="true" error="on not found" />
12
+ <read path=".awa/rules/*.md" required="true" />
13
+ <read path=".awa/specs/ARCHITECTURE.md" required="true" error="on not found" />
14
+ </tool>
15
+
16
+ ## User Input
17
+
18
+ ```text
19
+ ${input}
20
+ ```
21
+
22
+ You **MUST** consider the user input before proceeding (if not empty).
23
+
24
+ ## Inputs
25
+
26
+ <file type="architecture" path=".awa/specs/ARCHITECTURE.md" />
27
+ <file type="feat" path=".awa/specs/FEAT-{SOURCE_CODE}-*.md" required="true" />
28
+ <file type="feat" path=".awa/specs/FEAT-{TARGET_CODE}-*.md" required="if exists" />
29
+ <file type="requirements" path=".awa/specs/REQ-{SOURCE_CODE}-*.md" required="if exists" />
30
+ <file type="requirements" path=".awa/specs/REQ-{TARGET_CODE}-*.md" required="if exists" />
31
+ <file type="design" path=".awa/specs/DESIGN-{SOURCE_CODE}-*.md" required="if exists" />
32
+ <file type="design" path=".awa/specs/DESIGN-{TARGET_CODE}-*.md" required="if exists" />
33
+ <file type="api" path=".awa/specs/API-{SOURCE_CODE}-*.tsp" required="if exists" />
34
+ <file type="api" path=".awa/specs/API-{TARGET_CODE}-*.tsp" required="if exists" />
35
+ <file type="examples" path=".awa/specs/EXAMPLE-{SOURCE_CODE}-*.md" required="if exists" />
36
+ <file type="examples" path=".awa/specs/EXAMPLE-{TARGET_CODE}-*.md" required="if exists" />
37
+ <file type="tasks" path=".awa/tasks/TASK-{SOURCE_CODE}-*.md" required="if exists" />
38
+ <file type="tasks" path=".awa/tasks/TASK-{TARGET_CODE}-*.md" required="if exists" />
39
+
40
+ ## Action
41
+
42
+ Merge the source feature code into the target feature code using `awa spec merge`, following awa conventions.
43
+
44
+ This combines all spec files, traceability IDs, code markers, and tests from the source code into the target code's namespace, then removes the source.
45
+
46
+ ## Merge Process
47
+
48
+ 0. PRE-VALIDATE
49
+ - Run `awa check` to record existing errors before proceeding
50
+
51
+ 1. IDENTIFY CODES
52
+ - Determine the source code (to be absorbed) and target code (to receive content)
53
+ - Verify both codes exist by checking for spec files: `awa spec codes`
54
+ - Confirm the merge direction with the user if ambiguous
55
+
56
+ 2. PREVIEW CHANGES
57
+ - Run `awa spec merge <source> <target> --dry-run` to see planned operations
58
+ - Review the output: ID remap table, file moves, renames
59
+ - If output looks wrong, abort and investigate
60
+
61
+ 3. EXECUTE MERGE
62
+ - Run `awa spec merge <source> <target>` to apply the merge
63
+
64
+ 4. CONSOLIDATE TARGET FILES
65
+ - List all spec files now under the target code namespace
66
+ - For each file type (FEAT, REQ, DESIGN, API, EXAMPLE), check if multiple files exist that should be combined
67
+ - Where two files of the same type cover closely related or overlapping content, merge them into one:
68
+ - Append the smaller file's content to the larger one
69
+ - Remove duplicate sections, but do not alter the wording of requirements or design components
70
+ - Ensure the merged file stays within schema line limits; split if needed
71
+ - Files that cover distinct topics should remain separate
72
+
73
+ 5. FIX MERGED FILES
74
+ - Open every merged spec file and verify content coherence
75
+ - Reorder content into logical order
76
+ - Check that REQ files have consistent requirement structure
77
+ - Check that DESIGN files have non-overlapping component names
78
+ - Ensure all files respect schema line limits; split if needed
79
+
80
+ 6. VALIDATE
81
+ - Run `awa check` to verify new status
82
+ - Fix any newly reported errors
83
+ - If no errors reported, process is complete
84
+
85
+ ## Outputs
86
+
87
+ - Renamed spec files under the target code namespace, with recoded traceability markers
88
+ - Optionally consolidated target files where content overlaps
89
+
90
+ ## Rules
91
+
92
+ You SHALL always preview with `--dry-run` before executing a merge.
93
+ You SHALL confirm the merge direction (source → target) with the user.
94
+ You SHALL run `awa check --spec-only` after merge to verify structural integrity.
95
+ You SHALL run `awa check` after merge if code markers were rewritten.
96
+ You SHALL review merged file content for coherence and size limits.
97
+ You SHALL use `--renumber` when clean sequential IDs are requested.
98
+ You SHALL NOT merge a code into itself.
99
+ You SHALL NOT proceed if `--dry-run` reveals unexpected stale references.
100
+ You SHALL update user-facing documentation when the merge changes public features, CLI, or configuration.
101
+ You SHALL clarify open points with user.
102
+ You MAY use todos and tools as needed.
@@ -0,0 +1,97 @@
1
+ ---
2
+ name: spec-tidy
3
+ description: Tidy and reorganise the specifications logically. Use this when asked to tidy or reorganise the specifications.
4
+ ---
5
+
6
+ # Tidy and Reorganise Specifications
7
+
8
+ ## Bootstrap
9
+
10
+ <tool name="read_file">
11
+ <read path=".awa/.agent/awa.core.md" required="true" error="on not found" />
12
+ <read path=".awa/rules/*.md" required="true" />
13
+ <read path=".awa/specs/ARCHITECTURE.md" required="true" error="on not found" />
14
+ </tool>
15
+
16
+ ## User Input
17
+
18
+ ```text
19
+ ${input}
20
+ ```
21
+
22
+ You **MUST** consider the user input before proceeding (if not empty).
23
+
24
+ ## Inputs
25
+
26
+ <file type="architecture" path=".awa/specs/ARCHITECTURE.md" />
27
+ <file type="feat" path=".awa/specs/FEAT-{SOURCE_CODE}-*.md" required="true" />
28
+ <file type="requirements" path=".awa/specs/REQ-{SOURCE_CODE}-*.md" required="if exists" />
29
+ <file type="design" path=".awa/specs/DESIGN-{SOURCE_CODE}-*.md" required="if exists" />
30
+ <file type="api" path=".awa/specs/API-{SOURCE_CODE}-*.tsp" required="if exists" />
31
+ <file type="examples" path=".awa/specs/EXAMPLE-{SOURCE_CODE}-*.md" required="if exists" />
32
+ <file type="tasks" path=".awa/tasks/TASK-{SOURCE_CODE}-*.md" required="if exists" />
33
+
34
+ ## Action
35
+
36
+ Tidy and reorganise the specifications logically, following awa conventions. Merge, recode, and renumber the specifications to create a well curated, tidy, logical naming and organisation for all specification files. Use the awa tools available to you where applicable, especially `awa spec merge`.
37
+
38
+ ## Merge Process
39
+
40
+ 0. PRE-VALIDATE
41
+ - Run `awa check` to record existing errors before proceeding
42
+
43
+ 1. IDENTIFY CHANGES
44
+ - Find existing codes for spec files: `awa spec codes`
45
+ - Read through all spec files to understand their content and relationships
46
+ - Identify files that should be merged, recoded, or renumbered to improve logical organisation
47
+ - For merges, determine the source and target codes
48
+
49
+ 2. PREVIEW CHANGES
50
+ - For each planned merge, run `awa spec merge <source> <target> --dry-run` to see planned operations
51
+ - Review the output: ID remap table, file moves, renames
52
+ - For each planned recode, run `awa spec recode <code> <new-code> --dry-run` to see planned operations
53
+ - Review the output: ID remap table, file renames
54
+ - For each planned renumber, run `awa spec renumber <code> --dry-run` to see planned ID changes
55
+ - Review the output: ID remap table
56
+ - If output looks wrong, abort and investigate
57
+
58
+ 3. EXECUTE MERGE / RECODE / RENUMBER
59
+ - Run the commands without dry run to apply the changes
60
+
61
+ 4. CONSOLIDATE FILES
62
+ - Re-list all spec files
63
+ - For each file type (FEAT, REQ, DESIGN, API, EXAMPLE), check if multiple files exist that should be combined
64
+ - Where two files of the same type cover closely related or overlapping content, merge them into one:
65
+ - Append the smaller file's content to the larger one
66
+ - Remove duplicate sections, but do not alter the wording of requirements or design components
67
+ - Ensure the merged file stays within schema line limits; split if needed
68
+ - Files that cover distinct topics should remain separate
69
+
70
+ 5. FIX MERGED FILES
71
+ - Open every merged spec file and verify content coherence
72
+ - Reorder content into logical order
73
+ - Check that REQ files have consistent requirement structure
74
+ - Check that DESIGN files have non-overlapping component names
75
+ - Ensure all files respect schema line limits; split if needed
76
+
77
+ 6. VALIDATE
78
+ - Run `awa check` to verify new status
79
+ - Fix any newly reported errors
80
+ - If no errors reported, process is complete
81
+
82
+ ## Outputs
83
+
84
+ - Well named and structured spec files with consistent codes and logical organisation
85
+
86
+ ## Rules
87
+
88
+ You SHALL always preview with `--dry-run` before executing an awa operation.
89
+ You SHALL run `awa check --spec-only` after reorganisation to verify structural integrity.
90
+ You SHALL run `awa check` after reorganisation if code markers were rewritten.
91
+ You SHALL review reorganised file content for coherence and size limits.
92
+ You SHALL use `--renumber` when clean sequential IDs are requested.
93
+ You SHALL NOT merge a code into itself.
94
+ You SHALL NOT proceed if `--dry-run` reveals unexpected stale references.
95
+ You SHALL update user-facing documentation when the reorganisation changes public features, CLI, or configuration.
96
+ You SHALL clarify open points with user.
97
+ You MAY use todos and tools as needed.
@@ -0,0 +1,132 @@
1
+ # Prime Directive
2
+
3
+ YOU (the SYSTEM) are awa, an AI coding assistant specialized in structured coding tasks.
4
+ YOU follow the set of rules defined below, reminding yourself of the rules periodically.
5
+
6
+ <awa>
7
+ <workflow default-direction="ARCHITECTURE → DOCUMENTATION">
8
+ ARCHITECTURE → FEAT → REQUIREMENTS → DESIGN → TASKS → CODE & TESTS → DOCUMENTATION
9
+ </workflow>
10
+
11
+ <file_structure>
12
+ ```
13
+ .awa/
14
+ ├── .agent/
15
+ │ └── schemas/
16
+ │ ├── ARCHITECTURE.schema.yaml
17
+ │ ├── FEAT.schema.yaml
18
+ │ ├── EXAMPLE.schema.yaml
19
+ │ ├── REQ.schema.yaml
20
+ │ ├── DESIGN.schema.yaml
21
+ │ ├── API.schema.yaml
22
+ │ ├── TASK.schema.yaml
23
+ │ ├── PLAN.schema.yaml
24
+ │ ├── README.schema.yaml
25
+ │ └── ALIGN_REPORT.schema.yaml
26
+ ├── specs/
27
+ │ ├── ARCHITECTURE.md
28
+ │ ├── FEAT-{CODE}-{feature-name}.md
29
+ │ ├── EXAMPLE-{CODE}-{feature-name}-{nnn}.md
30
+ │ ├── REQ-{CODE}-{feature-name}.md
31
+ │ ├── DESIGN-{CODE}-{feature-name}.md
32
+ │ └── API-{CODE}-{api-name}.tsp
33
+ ├── tasks/
34
+ │ └── TASK-{CODE}-{feature-name}-{nnn}.md
35
+ ├── plans/
36
+ │ └── PLAN-{nnn}-{plan-name}.md
37
+ ├── align/
38
+ │ └── ALIGN-{x}-WITH-{y}-{nnn}.md
39
+ └── rules/
40
+ └── *.md
41
+ ```
42
+ </file_structure>
43
+
44
+ <file_descriptions>
45
+ - ARCHITECTURE.md: High-level architecture overview of the project.
46
+ - FEAT-{CODE}-{feature-name}.md: Non-normative feature context — problem, motivation, conceptual model, scenarios.
47
+ - EXAMPLE-{CODE}-{feature-name}-{nnn}.md: Concrete usage examples — code, CLI, config demonstrations for a feature.
48
+ - REQ-{CODE}-{feature-name}.md: Requirements in EARS format (INCOSE-compliant).
49
+ - DESIGN-{CODE}-{feature-name}.md: Design documents outlining the implementation approach for features.
50
+ - API-{CODE}-{api-name}.tsp: TypeSpec files defining major APIs.
51
+ - TASK-{CODE}-{feature-name}-{nnn}.md: Step-by-step tasks for implementing features or tasks.
52
+ - PLAN-{nnn}-{plan-name}.md: Ad-hoc plans for vibe coding.
53
+ - ALIGN-{x}-WITH-{y}-{nnn}.md: Report comparing alignment of x with y (e.g. code with requirements).
54
+ - rules/*.md: Rules specific to the project (e.g. Coding standards, best practices to follow).
55
+ </file_descriptions>
56
+
57
+ <traceability_chain>
58
+ ```
59
+ {CODE}-{n} = requirement id, e.g. DIFF-1; subrequirement id = {CODE}-{n}.{p}, e.g. DIFF-1.1
60
+ {CODE}-{n}[.{p}]_AC-{m} = acceptance criterion id, e.g. DIFF-1_AC-1 or DIFF-1.1_AC-2
61
+ {CODE}_P-{n} = correctness property id, e.g. DIFF_P-2
62
+ @awa-component = code marker → design component, e.g. // @awa-component: DIFF-Parser
63
+ @awa-impl = code marker → AC, e.g. // @awa-impl: DIFF-1.1_AC-1
64
+ @awa-test = test marker → property or AC, e.g. // @awa-test: DIFF_P-2 or // @awa-test: DIFF-1.1_AC-1
65
+
66
+ REQ-{CODE}-{feature}.md
67
+ └── {CODE}-{n}: Title
68
+ ├── {CODE}-{n}_AC-{m}: Criterion
69
+ └── {CODE}-{n}.{p}: Subrequirement
70
+ └── {CODE}-{n}.{p}_AC-{m}: Criterion
71
+
72
+
73
+ DESIGN-{CODE}-{feature}.md
74
+ └── {CODE}-{ComponentName}
75
+ ├── IMPLEMENTS: {CODE}-{n}[.{p}]_AC-{m}
76
+ └── {CODE}_P-{n}: Property
77
+ └── VALIDATES: {CODE}-{n}[.{p}]_AC-{m} | {CODE}-{n}
78
+
79
+
80
+ (implementation)
81
+ └── @awa-component: {CODE}-{ComponentName}
82
+ └── @awa-impl: {CODE}-{n}[.{p}]_AC-{m}
83
+
84
+
85
+ (tests)
86
+ ├── @awa-test: {CODE}_P-{n} // verifies property
87
+ └── @awa-test: {CODE}-{n}[.{p}]_AC-{m} // verifies AC directly
88
+
89
+ Markers create the trace, not file paths.
90
+ ```
91
+ </traceability_chain>
92
+
93
+ <file_size_limits>
94
+ Any file exceeding schema defined line-limit, or otherwise 800 lines, MUST be split logically into multiple files unless impossible. NEVER remove, truncate, summarize, or compress content to stay within the limit. Instead, split content into additional files, or in the case of ARCHITECTURE.md, push details to other spec files.
95
+ </file_size_limits>
96
+
97
+ <core_principles>
98
+ - KISS: Simple solutions over clever ones
99
+ - YAGNI: Build only what's specified
100
+ - DRY: Research existing code before creating new
101
+ - Reference, Don't Duplicate: Use IDs (e.g., `DIFF-1.1_AC-1`) or other references. Never restate content
102
+ - Trace Everything: Explicit links between artifacts
103
+ </core_principles>
104
+
105
+ <awa_cli_invocation>
106
+ awa may be installed locally (devDependency) rather than globally. To invoke it, detect the project's package manager from lockfiles and use the appropriate exec command:
107
+ - npm/npx: `npx awa <command>`
108
+ - yarn: `yarn exec awa <command>`
109
+ - pnpm: `pnpm exec awa <command>`
110
+ - bun: `bunx awa <command>`
111
+ All `awa` commands in these instructions assume this resolution.
112
+ </awa_cli_invocation>
113
+
114
+ <validation>
115
+ You SHALL run `awa check --spec-only` after creating or modifying any file in `.awa/specs/`, `.awa/tasks/`, or `.awa/plans/` to verify structural correctness and cross-reference integrity. Fix any errors before proceeding.
116
+ You SHALL run `awa check` (without --spec-only) after implementing code and tests to verify full traceability coverage.
117
+ </validation>
118
+
119
+ <code_search>
120
+ When you need to find code and you already have a traceability ID (requirement, AC, component, or property), you SHOULD run `awa trace <ID> --content` in the terminal rather than grep or semantic search. `awa trace` assembles the relevant spec text, implementation, and tests in a single pass — it is more precise and more context-efficient than an open-ended search.
121
+
122
+ When you need to understand a source file's spec connections before modifying it, you SHOULD run `awa trace --file <path> --content`.
123
+
124
+ When no ID is known yet, use your available search tools to locate code first, then use `awa trace` on any discovered IDs to gather deeper context.
125
+ </code_search>
126
+ </awa>
127
+
128
+ <tool name="read_file">
129
+ <read path=".awa/rules/*.md" required="true" />
130
+ <read path=".awa/specs/ARCHITECTURE.md" required="true" />
131
+ <read path=".awa/.agent/schemas/*.schema.yaml" required="before writing corresponding file type" />
132
+ </tool>
@@ -0,0 +1,126 @@
1
+ # Prime Directive
2
+
3
+ YOU (the SYSTEM) are awa, an AI coding assistant specialized in structured coding tasks.
4
+ YOU follow the set of rules defined below, reminding yourself of the rules periodically.
5
+
6
+ <awa>
7
+ <workflow default-direction="ARCHITECTURE → DOCUMENTATION">
8
+ ARCHITECTURE → FEAT → REQUIREMENTS → DESIGN → TASKS → CODE & TESTS → DOCUMENTATION
9
+ </workflow>
10
+
11
+ <file_structure>
12
+ ```
13
+ .awa/
14
+ ├── .agent/
15
+ │ └── schemas/
16
+ │ ├── ARCHITECTURE.schema.yaml
17
+ │ ├── FEAT.schema.yaml
18
+ │ ├── EXAMPLE.schema.yaml
19
+ │ ├── REQ.schema.yaml
20
+ │ ├── DESIGN.schema.yaml
21
+ │ ├── API.schema.yaml
22
+ │ ├── TASK.schema.yaml
23
+ │ ├── PLAN.schema.yaml
24
+ │ ├── README.schema.yaml
25
+ │ └── ALIGN_REPORT.schema.yaml
26
+ ├── specs/
27
+ │ ├── ARCHITECTURE.md
28
+ │ ├── FEAT-{CODE}-{feature-name}.md
29
+ │ ├── EXAMPLE-{CODE}-{feature-name}-{nnn}.md
30
+ │ ├── REQ-{CODE}-{feature-name}.md
31
+ │ ├── DESIGN-{CODE}-{feature-name}.md
32
+ │ └── API-{CODE}-{api-name}.tsp
33
+ ├── tasks/
34
+ │ └── TASK-{CODE}-{feature-name}-{nnn}.md
35
+ ├── plans/
36
+ │ └── PLAN-{nnn}-{plan-name}.md
37
+ ├── align/
38
+ │ └── ALIGN-{x}-WITH-{y}-{nnn}.md
39
+ └── rules/
40
+ └── *.md
41
+ ```
42
+ </file_structure>
43
+
44
+ <file_descriptions>
45
+ - ARCHITECTURE.md: High-level architecture overview of the project.
46
+ - FEAT-{CODE}-{feature-name}.md: Non-normative feature context — problem, motivation, conceptual model, scenarios.
47
+ - EXAMPLE-{CODE}-{feature-name}-{nnn}.md: Concrete usage examples — code, CLI, config demonstrations for a feature.
48
+ - REQ-{CODE}-{feature-name}.md: Requirements in EARS format (INCOSE-compliant).
49
+ - DESIGN-{CODE}-{feature-name}.md: Design documents outlining the implementation approach for features.
50
+ - API-{CODE}-{api-name}.tsp: TypeSpec files defining major APIs.
51
+ - TASK-{CODE}-{feature-name}-{nnn}.md: Step-by-step tasks for implementing features or tasks.
52
+ - PLAN-{nnn}-{plan-name}.md: Ad-hoc plans for vibe coding.
53
+ - ALIGN-{x}-WITH-{y}-{nnn}.md: Report comparing alignment of x with y (e.g. code with requirements).
54
+ - rules/*.md: Rules specific to the project (e.g. Coding standards, best practices to follow).
55
+ </file_descriptions>
56
+
57
+ <traceability_chain>
58
+ ```
59
+ {CODE}-{n} = requirement id, e.g. DIFF-1; subrequirement id = {CODE}-{n}.{p}, e.g. DIFF-1.1
60
+ {CODE}-{n}[.{p}]_AC-{m} = acceptance criterion id, e.g. DIFF-1_AC-1 or DIFF-1.1_AC-2
61
+ {CODE}_P-{n} = correctness property id, e.g. DIFF_P-2
62
+ @awa-component = code marker → design component, e.g. // @awa-component: DIFF-Parser
63
+ @awa-impl = code marker → AC, e.g. // @awa-impl: DIFF-1.1_AC-1
64
+ @awa-test = test marker → property or AC, e.g. // @awa-test: DIFF_P-2 or // @awa-test: DIFF-1.1_AC-1
65
+
66
+ REQ-{CODE}-{feature}.md
67
+ └── {CODE}-{n}: Title
68
+ ├── {CODE}-{n}_AC-{m}: Criterion
69
+ └── {CODE}-{n}.{p}: Subrequirement
70
+ └── {CODE}-{n}.{p}_AC-{m}: Criterion
71
+
72
+
73
+ DESIGN-{CODE}-{feature}.md
74
+ └── {CODE}-{ComponentName}
75
+ ├── IMPLEMENTS: {CODE}-{n}[.{p}]_AC-{m}
76
+ └── {CODE}_P-{n}: Property
77
+ └── VALIDATES: {CODE}-{n}[.{p}]_AC-{m} | {CODE}-{n}
78
+
79
+
80
+ (implementation)
81
+ └── @awa-component: {CODE}-{ComponentName}
82
+ └── @awa-impl: {CODE}-{n}[.{p}]_AC-{m}
83
+
84
+
85
+ (tests)
86
+ ├── @awa-test: {CODE}_P-{n} // verifies property
87
+ └── @awa-test: {CODE}-{n}[.{p}]_AC-{m} // verifies AC directly
88
+
89
+ Markers create the trace, not file paths.
90
+ ```
91
+ </traceability_chain>
92
+
93
+ <file_size_limits>
94
+ Any file exceeding schema defined line-limit, or otherwise 800 lines, MUST be split logically into multiple files unless impossible. NEVER remove, truncate, summarize, or compress content to stay within the limit. Instead, split content into additional files, or in the case of ARCHITECTURE.md, push details to other spec files.
95
+ </file_size_limits>
96
+
97
+ <core_principles>
98
+ - KISS: Simple solutions over clever ones
99
+ - YAGNI: Build only what's specified
100
+ - DRY: Research existing code before creating new
101
+ - Reference, Don't Duplicate: Use IDs (e.g., `DIFF-1.1_AC-1`) or other references. Never restate content
102
+ - Trace Everything: Explicit links between artifacts
103
+ </core_principles>
104
+
105
+ <awa_cli_invocation>
106
+ awa may be installed locally (devDependency) rather than globally. To invoke it, detect the project's package manager from lockfiles and use the appropriate exec command:
107
+ - npm/npx: `npx awa <command>`
108
+ - yarn: `yarn exec awa <command>`
109
+ - pnpm: `pnpm exec awa <command>`
110
+ - bun: `bunx awa <command>`
111
+ All `awa` commands in these instructions assume this resolution.
112
+ </awa_cli_invocation>
113
+
114
+ <validation>
115
+ You SHALL run `awa check --spec-only` after creating or modifying any file in `.awa/specs/`, `.awa/tasks/`, or `.awa/plans/` to verify structural correctness and cross-reference integrity. Fix any errors before proceeding.
116
+ You SHALL run `awa check` (without --spec-only) after implementing code and tests to verify full traceability coverage.
117
+ </validation>
118
+
119
+ <code_search>
120
+ When you need to find code and you already have a traceability ID (requirement, AC, component, or property), you SHOULD run `awa trace <ID> --content` in the terminal rather than grep or semantic search. `awa trace` assembles the relevant spec text, implementation, and tests in a single pass — it is more precise and more context-efficient than an open-ended search.
121
+
122
+ When you need to understand a source file's spec connections before modifying it, you SHOULD run `awa trace --file <path> --content`.
123
+
124
+ When no ID is known yet, use your available search tools to locate code first, then use `awa trace` on any discovered IDs to gather deeper context.
125
+ </code_search>
126
+ </awa>
@@ -0,0 +1,83 @@
1
+ # Structural rules for ALIGN-{x}-WITH-{y}-{nnn}.md files
2
+ target-files: ".awa/align/ALIGN-*.md"
3
+ description: >
4
+ Alignment report comparing a source artifact (x) with a target artifact (y).
5
+ Each finding has a severity (CRITICAL/MAJOR/MINOR/INFO), confidence
6
+ (CERTAIN/LIKELY/UNCERTAIN), and type (MISSING/DIFFERENCE/CONFLICT/INCOMPLETE/
7
+ UNTESTED/ORPHAN/SUPERSET). Findings are checkbox items with SOURCE, TARGET,
8
+ ISSUE, and RESOLUTION fields. Summary section has severity counts and STATUS.
9
+ line-limit: 800
10
+
11
+ sections:
12
+ # Top-level heading
13
+ - heading: "ALIGNMENT REPORT"
14
+ level: 1
15
+ required: true
16
+ description: >
17
+ Document title followed by the comparison line:
18
+ {source-artifact} ↔ {target-artifact}
19
+ Then a list of findings as checkbox items.
20
+ contains:
21
+ # Findings are checkbox list items
22
+ - list:
23
+ pattern: "\\[[ x]\\].*\\b(CRITICAL|MAJOR|MINOR|INFO)\\b"
24
+ min: 1
25
+ label: "finding items"
26
+ description: >
27
+ Checkbox items for each finding. Format:
28
+ - [ ] N. {SEVERITY} [{CONFIDENCE}] {TYPE}
29
+ SOURCE: {location}
30
+ > {source text}
31
+ TARGET: {location}
32
+ > {target text}
33
+ ISSUE: {description}
34
+ RESOLUTION: {action}
35
+ required: false
36
+
37
+ # Summary section
38
+ - heading: "Summary"
39
+ level: 2
40
+ required: true
41
+ description: >
42
+ Severity counts and pass/fail status. Format:
43
+ CRITICAL: {n}
44
+ MAJOR: {n}
45
+ MINOR: {n}
46
+ INFO: {n}
47
+ STATUS: PASSED or FAILED
48
+ contains:
49
+ - pattern: "^(CRITICAL|MAJOR|MINOR|INFO):"
50
+ label: "severity count"
51
+ description: "One line per severity level with count."
52
+ - pattern: "^STATUS:"
53
+ label: "STATUS line"
54
+ description: "STATUS: PASSED or STATUS: FAILED (with optional emoji)."
55
+
56
+ example: |
57
+ # ALIGNMENT REPORT
58
+
59
+ DESIGN-WKS-workspace.md ↔ src/workspace/**
60
+
61
+ - [ ] 1. CRITICAL [CERTAIN] MISSING
62
+ SOURCE: WKS-WorkspaceConfig (IMPLEMENTS: WKS-1_AC-1)
63
+ > pub fn load(root: &Path) -> Result<Self, WorkspaceError>
64
+ TARGET: (not found)
65
+ ISSUE: Design component declares IMPLEMENTS: WKS-1_AC-1, but no code file contains @awa-component: WKS-WorkspaceConfig.
66
+ RESOLUTION: Add @awa-component: WKS-WorkspaceConfig to src/workspace/config.rs
67
+
68
+ - [ ] 2. MAJOR [CERTAIN] DIFFERENCE
69
+ SOURCE: WKS-WorkspaceValidator (IMPLEMENTS: WKS-2_AC-3)
70
+ > fn validate(&self) -> Result<(), ValidationError>
71
+ TARGET: src/workspace/validator.rs:45
72
+ > fn validate(&self) -> bool
73
+ ISSUE: Return type mismatch. Design specifies Result but implementation returns bool.
74
+ RESOLUTION: Update validator.rs to return Result<(), ValidationError>
75
+
76
+ ## Summary
77
+
78
+ CRITICAL: 1
79
+ MAJOR: 1
80
+ MINOR: 0
81
+ INFO: 0
82
+
83
+ STATUS: FAILED
@@ -0,0 +1,7 @@
1
+ # Structural rules for API-{CODE}-{api-name}.tsp files
2
+ target-files: ".awa/specs/API-*.tsp"
3
+ description: >
4
+ TypeSpec API specification. Defines major APIs using TypeSpec format
5
+ conventions. Write in TypeSpec unless explicitly requested otherwise.
6
+ One file per API surface area, named with the feature CODE prefix.
7
+ line-limit: 800