@ncoderz/awa 1.7.1 → 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 +1285 -466
  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,9 @@
1
+ #!/usr/bin/env node
2
+ import {
3
+ renumberCommand
4
+ } from "./chunk-WGGMDWBE.js";
5
+ import "./chunk-LRQWZCYL.js";
6
+ export {
7
+ renumberCommand
8
+ };
9
+ //# sourceMappingURL=renumber-ZCI2H5HZ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@ncoderz/awa",
3
- "version": "1.7.1",
3
+ "version": "1.8.0",
4
4
  "description": "awa is an Agent Workflow for AIs. It is also a CLI tool to powerfully manage agent workflow files using templates.",
5
- "license": "MIT",
5
+ "license": "BSD-3-Clause",
6
6
  "repository": {
7
7
  "type": "git",
8
8
  "url": "https://github.com/ncoderz/awa"
@@ -25,9 +25,9 @@
25
25
  "test:watch": "vitest",
26
26
  "test:coverage": "vitest run --coverage",
27
27
  "check": "npm run dev -- check",
28
- "lint": "biome check --error-on-warnings .",
29
- "lint:fix": "biome check --error-on-warnings --fix .",
30
- "format": "biome format --write .",
28
+ "lint": "eslint --max-warnings 0 .",
29
+ "lint:fix": "eslint --max-warnings 0 --fix .",
30
+ "format": "prettier --write .",
31
31
  "typecheck": "tsc --noEmit",
32
32
  "typecheck:tests": "tsc --noEmit -p tsconfig.test.json",
33
33
  "typecheck:all": "npm run typecheck && npm run typecheck:tests",
@@ -71,15 +71,22 @@
71
71
  "yaml": "^2.8.2"
72
72
  },
73
73
  "devDependencies": {
74
- "@biomejs/biome": "^2",
74
+ "@eslint/js": "^10.0.1",
75
+ "@eslint/json": "^1.0.1",
75
76
  "@types/degit": "^2.8.6",
76
77
  "@types/mdast": "^4.0.4",
77
78
  "@types/node": "^25.3.0",
78
79
  "@vitest/coverage-v8": "^4.0.18",
80
+ "eslint": "^10.0.2",
81
+ "eslint-config-prettier": "^10.1.8",
82
+ "eslint-plugin-prettier": "^5.5.5",
83
+ "eslint-plugin-simple-import-sort": "^12.1.1",
79
84
  "fast-check": "^4.5.3",
85
+ "prettier": "^3.8.1",
80
86
  "tsup": "^8.5.1",
81
87
  "tsx": "^4.21.0",
82
88
  "typescript": "^5.9.3",
89
+ "typescript-eslint": "^8.56.1",
83
90
  "vitest": "^4.0.18"
84
91
  }
85
92
  }
@@ -0,0 +1,3 @@
1
+ <% if (it.features.includes('agy')) { %>
2
+ <%~ include('_partials/_skill.spec-merge.md', it) %>
3
+ <% } %>
@@ -0,0 +1,3 @@
1
+ <% if (it.features.includes('agy')) { %>
2
+ <%~ include('_partials/_skill.spec-tidy.md', it) %>
3
+ <% } %>
@@ -0,0 +1,3 @@
1
+ <% if (it.features.includes('agy')) { %>
2
+ <%~ include('_partials/_cmd.spec-merge.md', it) %>
3
+ <% } %>
@@ -0,0 +1,3 @@
1
+ <% if (it.features.includes('agy')) { %>
2
+ <%~ include('_partials/_cmd.spec-tidy.md', it) %>
3
+ <% } %>
@@ -0,0 +1,3 @@
1
+ <% if (it.features.includes('codex')) { %>
2
+ <%~ include('_partials/_skill.spec-merge.md', it) %>
3
+ <% } %>
@@ -0,0 +1,3 @@
1
+ <% if (it.features.includes('codex')) { %>
2
+ <%~ include('_partials/_skill.spec-tidy.md', it) %>
3
+ <% } %>
@@ -6,7 +6,7 @@ description: >
6
6
  (CERTAIN/LIKELY/UNCERTAIN), and type (MISSING/DIFFERENCE/CONFLICT/INCOMPLETE/
7
7
  UNTESTED/ORPHAN/SUPERSET). Findings are checkbox items with SOURCE, TARGET,
8
8
  ISSUE, and RESOLUTION fields. Summary section has severity counts and STATUS.
9
- line-limit: 500
9
+ line-limit: 800
10
10
 
11
11
  sections:
12
12
  # Top-level heading
@@ -4,4 +4,4 @@ description: >
4
4
  TypeSpec API specification. Defines major APIs using TypeSpec format
5
5
  conventions. Write in TypeSpec unless explicitly requested otherwise.
6
6
  One file per API surface area, named with the feature CODE prefix.
7
- line-limit: 500
7
+ line-limit: 800
@@ -32,6 +32,13 @@ sections:
32
32
  Bullet list of software layers or subsystems (e.g., CLI Layer,
33
33
  Core Engine, Template System, I/O Layer).
34
34
 
35
+ # Feature Codes section (auto-generated by awa check)
36
+ - heading: "Feature Codes"
37
+ level: 2
38
+ description: >
39
+ Auto-generated table of feature codes, feature names, and scope boundaries.
40
+ Managed by `awa check` — do not edit manually.
41
+
35
42
  # Technology Stack section
36
43
  - heading: "Technology Stack"
37
44
  level: 2
@@ -6,7 +6,7 @@ description: >
6
6
  Each component has a name ({CODE}-{ComponentName}), description, IMPLEMENTS
7
7
  trace, and interface code block. Correctness properties use {CODE}_P-{n} IDs
8
8
  and link back to requirements via VALIDATES.
9
- line-limit: 500
9
+ line-limit: 800
10
10
 
11
11
  sections:
12
12
  # Top-level heading: "Design Specification"
@@ -1,13 +1,13 @@
1
- # Structural rules for EXAMPLES-{CODE}-{feature-name}-{nnn}.md files
2
- target-files: ".awa/specs/EXAMPLES-*.md"
1
+ # Structural rules for EXAMPLE-{CODE}-{feature-name}-{nnn}.md files
2
+ target-files: ".awa/specs/EXAMPLE-*.md"
3
3
  description: >
4
4
  Concrete usage examples for a feature. Detailed, hands-on, reproducible.
5
5
  Use the same {CODE} as the corresponding FEAT/REQ for the feature.
6
- Number files sequentially (-001, -002, ...) when splitting at the 500-line limit.
6
+ Number files sequentially (-001, -002, ...) when splitting at the line-limit.
7
7
  Each example must have a title, context, and code/demonstration block.
8
8
  Marked [INFORMATIVE]. Prohibited: normative language (SHALL/SHOULD/MAY),
9
9
  acceptance criteria, traceability IDs, design decisions.
10
- line-limit: 500
10
+ line-limit: 800
11
11
 
12
12
  sections:
13
13
  # Top-level heading with INFORMATIVE marker
@@ -6,7 +6,7 @@ description: >
6
6
  to distinguish from normative REQ/DESIGN documents.
7
7
  Prohibited: normative language (SHALL/SHOULD/MAY), acceptance criteria,
8
8
  traceability IDs, design decisions, bold formatting.
9
- line-limit: 500
9
+ line-limit: 800
10
10
 
11
11
  sections:
12
12
  # Top-level heading with INFORMATIVE marker
@@ -33,6 +33,13 @@ sections:
33
33
  How users should think about this feature. Mental model, key abstractions,
34
34
  and relationships between concepts. May include diagrams.
35
35
 
36
+ # Scope Boundary section (optional, after Conceptual Model)
37
+ - heading: "Scope Boundary"
38
+ level: 2
39
+ description: >
40
+ Single sentence defining the feature's scope boundary — what this feature
41
+ owns and where it ends.
42
+
36
43
  # Scenarios section with repeatable scenario headings
37
44
  - heading: "Scenarios"
38
45
  level: 2
@@ -7,7 +7,7 @@ description: >
7
7
  organize sections as the plan demands. Plans should not contain significant
8
8
  code (short snippets for explanation are fine).
9
9
  Traceability links to REQ/DESIGN/code/tests are optional but encouraged.
10
- line-limit: 500
10
+ line-limit: 800
11
11
 
12
12
  sections:
13
13
  # H1 title with status/direction metadata
@@ -5,7 +5,7 @@ description: >
5
5
  /docs folder rather than including lengthy content inline. Required sections:
6
6
  title, description, installation, and usage. Keep it concise — the README
7
7
  is the front door, not the whole house.
8
- line-limit: 500
8
+ line-limit: 800
9
9
 
10
10
  sections:
11
11
  # Project title (H1)
@@ -6,7 +6,7 @@ description: >
6
6
  Each requirement has an ID ({CODE}-{n}), a user story (AS A/I WANT/SO THAT),
7
7
  and acceptance criteria with INCOSE-compliant types.
8
8
  Subrequirements use dotted IDs ({CODE}-{n}.{p}).
9
- line-limit: 500
9
+ line-limit: 800
10
10
 
11
11
  sections:
12
12
  # Top-level heading: "Requirements Specification"
@@ -9,7 +9,7 @@ description: >
9
9
  A Documentation phase is required after Polish. It lists doc files to update
10
10
  (README.md, docs/) for user-facing changes. If no doc updates are needed,
11
11
  include a single task stating so (e.g., "No doc changes — internal only").
12
- line-limit: 500
12
+ line-limit: 800
13
13
 
14
14
  sections:
15
15
  # Top-level heading: "Implementation Tasks"
@@ -0,0 +1,3 @@
1
+ <% if (it.features.includes('claude')) { %>
2
+ <%~ include('_partials/_skill.spec-merge.md', it) %>
3
+ <% } %>
@@ -0,0 +1,3 @@
1
+ <% if (it.features.includes('claude')) { %>
2
+ <%~ include('_partials/_skill.spec-tidy.md', it) %>
3
+ <% } %>
@@ -0,0 +1,3 @@
1
+ <% if (it.features.includes('gemini')) { %>
2
+ <%~ include('_partials/_cmd.spec-merge.md', it) %>
3
+ <% } %>
@@ -0,0 +1,3 @@
1
+ <% if (it.features.includes('gemini')) { %>
2
+ <%~ include('_partials/_cmd.spec-tidy.md', it) %>
3
+ <% } %>
@@ -0,0 +1,3 @@
1
+ <% if (it.features.includes('gemini')) { %>
2
+ <%~ include('_partials/_skill.spec-merge.md', it) %>
3
+ <% } %>
@@ -0,0 +1,3 @@
1
+ <% if (it.features.includes('gemini')) { %>
2
+ <%~ include('_partials/_skill.spec-tidy.md', it) %>
3
+ <% } %>
@@ -0,0 +1,8 @@
1
+ <% if (it.features.includes('copilot')) { %>
2
+ ---
3
+ description: Merge two feature codes into one using awa spec merge
4
+ argument-hint: "<source-code> <target-code>"
5
+ ---
6
+
7
+ <%~ include('_partials/awa.spec-merge.md', it) %>
8
+ <% } %>
@@ -0,0 +1,7 @@
1
+ <% if (it.features.includes('copilot')) { %>
2
+ ---
3
+ description: Tidy and reorganise the specifications logically
4
+ ---
5
+
6
+ <%~ include('_partials/awa.spec.tidy.md', it) %>
7
+ <% } %>
@@ -0,0 +1,3 @@
1
+ <% if (it.features.includes('copilot')) { %>
2
+ <%~ include('_partials/_skill.spec-merge.md', it) %>
3
+ <% } %>
@@ -0,0 +1,3 @@
1
+ <% if (it.features.includes('copilot')) { %>
2
+ <%~ include('_partials/_skill.spec-tidy.md', it) %>
3
+ <% } %>
@@ -0,0 +1,3 @@
1
+ <% if (it.features.includes('kilocode')) { %>
2
+ <%~ include('_partials/_skill.spec-merge.md', it) %>
3
+ <% } %>
@@ -0,0 +1,3 @@
1
+ <% if (it.features.includes('kilocode')) { %>
2
+ <%~ include('_partials/_skill.spec-tidy.md', it) %>
3
+ <% } %>
@@ -0,0 +1,3 @@
1
+ <% if (it.features.includes('kilocode')) { %>
2
+ <%~ include('_partials/_cmd.spec-merge.md', it) %>
3
+ <% } %>
@@ -0,0 +1,3 @@
1
+ <% if (it.features.includes('kilocode')) { %>
2
+ <%~ include('_partials/_cmd.spec-tidy.md', it) %>
3
+ <% } %>
@@ -0,0 +1,3 @@
1
+ <% if (it.features.includes('opencode')) { %>
2
+ <%~ include('_partials/_cmd.spec-merge.md', it) %>
3
+ <% } %>
@@ -0,0 +1,3 @@
1
+ <% if (it.features.includes('opencode')) { %>
2
+ <%~ include('_partials/_cmd.spec-tidy.md', it) %>
3
+ <% } %>
@@ -0,0 +1,3 @@
1
+ <% if (it.features.includes('opencode')) { %>
2
+ <%~ include('_partials/_skill.spec-merge.md', it) %>
3
+ <% } %>
@@ -0,0 +1,3 @@
1
+ <% if (it.features.includes('opencode')) { %>
2
+ <%~ include('_partials/_skill.spec-tidy.md', it) %>
3
+ <% } %>
@@ -0,0 +1,3 @@
1
+ <% if (it.features.includes('qwen')) { %>
2
+ <%~ include('_partials/_cmd.spec-merge.md', it) %>
3
+ <% } %>
@@ -0,0 +1,3 @@
1
+ <% if (it.features.includes('qwen')) { %>
2
+ <%~ include('_partials/_cmd.spec-tidy.md', it) %>
3
+ <% } %>
@@ -0,0 +1,3 @@
1
+ <% if (it.features.includes('qwen')) { %>
2
+ <%~ include('_partials/_skill.spec-merge.md', it) %>
3
+ <% } %>
@@ -0,0 +1,3 @@
1
+ <% if (it.features.includes('qwen')) { %>
2
+ <%~ include('_partials/_skill.spec-tidy.md', it) %>
3
+ <% } %>
@@ -0,0 +1,3 @@
1
+ <% if (it.features.includes('roo')) { %>
2
+ <%~ include('_partials/_skill.spec-merge.md', it) %>
3
+ <% } %>
@@ -0,0 +1,3 @@
1
+ <% if (it.features.includes('roo')) { %>
2
+ <%~ include('_partials/_skill.spec-tidy.md', it) %>
3
+ <% } %>
@@ -0,0 +1,3 @@
1
+ <% if (it.features.includes('windsurf')) { %>
2
+ <%~ include('_partials/_skill.spec-merge.md', it) %>
3
+ <% } %>
@@ -0,0 +1,3 @@
1
+ <% if (it.features.includes('windsurf')) { %>
2
+ <%~ include('_partials/_skill.spec-tidy.md', it) %>
3
+ <% } %>
@@ -24,6 +24,10 @@
24
24
  .awa/.agent/schemas/REQ.schema.md
25
25
  .awa/.agent/schemas/TASK.schema.md
26
26
 
27
+ # Old yaml schemas
28
+ .awa/.agent/schemas/EXAMPLES.schema.yaml
29
+
30
+
27
31
  # @feature copilot
28
32
  .github/agents/awa.agent.md
29
33
  .github/prompts/awa.architecture.prompt.md
@@ -0,0 +1,6 @@
1
+ ---
2
+ description: Merge two feature codes into one using awa spec merge
3
+ argument-hint: "<source-code> <target-code>"
4
+ ---
5
+
6
+ <%~ include('awa.spec-merge.md', it) %>
@@ -0,0 +1,5 @@
1
+ ---
2
+ description: Tidy and reorganise the specifications logically
3
+ ---
4
+
5
+ <%~ include('awa.spec.tidy.md', it) %>
@@ -0,0 +1,6 @@
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
+ <%~ include('awa.spec-merge.md', it) %>
@@ -0,0 +1,6 @@
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
+ <%~ include('awa.spec.tidy.md', it) %>
@@ -34,7 +34,7 @@ y = target artifact (what x is validated against) = requirement(s).
34
34
 
35
35
  <file type="architecture" path=".awa/specs/ARCHITECTURE.md" />
36
36
  <file type="feat" path=".awa/specs/FEAT-{CODE}-{feature-name}.md" required="if relevant" />
37
- <file type="examples" path=".awa/specs/EXAMPLES-{CODE}-{feature-name}-{nnn}.md" required="if relevant" />
37
+ <file type="examples" path=".awa/specs/EXAMPLE-{CODE}-{feature-name}-{nnn}.md" required="if relevant" />
38
38
  <file type="requirements" path=".awa/specs/REQ-{CODE}-{feature-name}.md" required="if relevant" />
39
39
  <file type="design" path=".awa/specs/DESIGN-{CODE}-{feature-name}.md" required="if relevant" />
40
40
  <file type="api" path=".awa/specs/API-{CODE}-{feature-name}.md" required="if relevant" />
@@ -20,7 +20,7 @@ You **MUST** consider the user input before proceeding (if not empty).
20
20
 
21
21
  <file type="architecture" path=".awa/specs/ARCHITECTURE.md" />
22
22
  <file type="feat" path=".awa/specs/FEAT-{CODE}-{feature-name}.md" required="if relevant" />
23
- <file type="examples" path=".awa/specs/EXAMPLES-{CODE}-{feature-name}-{nnn}.md" required="if relevant" />
23
+ <file type="examples" path=".awa/specs/EXAMPLE-{CODE}-{feature-name}-{nnn}.md" required="if relevant" />
24
24
  <file type="requirements" path=".awa/specs/REQ-{CODE}-{feature-name}.md" required="if relevant" />
25
25
  <file type="design" path=".awa/specs/DESIGN-{CODE}-{feature-name}.md" required="if relevant" />
26
26
  <file type="api" path=".awa/specs/API-{CODE}-{feature-name}.md" required="if relevant" />
@@ -20,7 +20,7 @@ You **MUST** consider the user input before proceeding (if not empty).
20
20
 
21
21
  <file type="architecture" path=".awa/specs/ARCHITECTURE.md" />
22
22
  <file type="feat" path=".awa/specs/FEAT-{CODE}-{feature-name}.md" required="if relevant" />
23
- <file type="examples" path=".awa/specs/EXAMPLES-{CODE}-{feature-name}-{nnn}.md" required="if relevant" />
23
+ <file type="examples" path=".awa/specs/EXAMPLE-{CODE}-{feature-name}-{nnn}.md" required="if relevant" />
24
24
  <file type="requirements" path=".awa/specs/REQ-{CODE}-{feature-name}.md" required="if relevant" />
25
25
  <file type="design" path=".awa/specs/DESIGN-{CODE}-{feature-name}.md" required="if relevant" />
26
26
  <file type="api" path=".awa/specs/API-{CODE}-{feature-name}.md" required="if relevant" />
@@ -9,12 +9,13 @@ YOU follow the set of rules defined below, reminding yourself of the rules perio
9
9
  </workflow>
10
10
 
11
11
  <file_structure>
12
+ ```
12
13
  .awa/
13
14
  ├── .agent/
14
15
  │ └── schemas/
15
16
  │ ├── ARCHITECTURE.schema.yaml
16
17
  │ ├── FEAT.schema.yaml
17
- │ ├── EXAMPLES.schema.yaml
18
+ │ ├── EXAMPLE.schema.yaml
18
19
  │ ├── REQ.schema.yaml
19
20
  │ ├── DESIGN.schema.yaml
20
21
  │ ├── API.schema.yaml
@@ -25,7 +26,7 @@ YOU follow the set of rules defined below, reminding yourself of the rules perio
25
26
  ├── specs/
26
27
  │ ├── ARCHITECTURE.md
27
28
  │ ├── FEAT-{CODE}-{feature-name}.md
28
- │ ├── EXAMPLES-{CODE}-{feature-name}-{nnn}.md
29
+ │ ├── EXAMPLE-{CODE}-{feature-name}-{nnn}.md
29
30
  │ ├── REQ-{CODE}-{feature-name}.md
30
31
  │ ├── DESIGN-{CODE}-{feature-name}.md
31
32
  │ └── API-{CODE}-{api-name}.tsp
@@ -37,12 +38,13 @@ YOU follow the set of rules defined below, reminding yourself of the rules perio
37
38
  │ └── ALIGN-{x}-WITH-{y}-{nnn}.md
38
39
  └── rules/
39
40
  └── *.md
41
+ ```
40
42
  </file_structure>
41
43
 
42
44
  <file_descriptions>
43
45
  - ARCHITECTURE.md: High-level architecture overview of the project.
44
46
  - FEAT-{CODE}-{feature-name}.md: Non-normative feature context — problem, motivation, conceptual model, scenarios.
45
- - EXAMPLES-{CODE}-{feature-name}-{nnn}.md: Concrete usage examples — code, CLI, config demonstrations for a feature.
47
+ - EXAMPLE-{CODE}-{feature-name}-{nnn}.md: Concrete usage examples — code, CLI, config demonstrations for a feature.
46
48
  - REQ-{CODE}-{feature-name}.md: Requirements in EARS format (INCOSE-compliant).
47
49
  - DESIGN-{CODE}-{feature-name}.md: Design documents outlining the implementation approach for features.
48
50
  - API-{CODE}-{api-name}.tsp: TypeSpec files defining major APIs.
@@ -53,6 +55,7 @@ YOU follow the set of rules defined below, reminding yourself of the rules perio
53
55
  </file_descriptions>
54
56
 
55
57
  <traceability_chain>
58
+ ```
56
59
  {CODE}-{n} = requirement id, e.g. DIFF-1; subrequirement id = {CODE}-{n}.{p}, e.g. DIFF-1.1
57
60
  {CODE}-{n}[.{p}]_AC-{m} = acceptance criterion id, e.g. DIFF-1_AC-1 or DIFF-1.1_AC-2
58
61
  {CODE}_P-{n} = correctness property id, e.g. DIFF_P-2
@@ -84,10 +87,11 @@ DESIGN-{CODE}-{feature}.md
84
87
  └── @awa-test: {CODE}-{n}[.{p}]_AC-{m} // verifies AC directly
85
88
 
86
89
  Markers create the trace, not file paths.
90
+ ```
87
91
  </traceability_chain>
88
92
 
89
93
  <file_size_limits>
90
- Any file exceeding schema defined line-limit, or otherwise 500 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.
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.
91
95
  </file_size_limits>
92
96
 
93
97
  <core_principles>
@@ -22,7 +22,7 @@ You **MUST** consider the user input before proceeding (if not empty).
22
22
 
23
23
  <file type="architecture" path=".awa/specs/ARCHITECTURE.md" />
24
24
  <file type="feat" path=".awa/specs/FEAT-{CODE}-{feature-name}.md" required="if relevant" />
25
- <file type="examples" path=".awa/specs/EXAMPLES-{CODE}-{feature-name}-{nnn}.md" required="if relevant" />
25
+ <file type="examples" path=".awa/specs/EXAMPLE-{CODE}-{feature-name}-{nnn}.md" required="if relevant" />
26
26
  <file type="requirements" path=".awa/specs/REQ-{CODE}-{feature-name}.md" required="if relevant" />
27
27
  <file type="design" path=".awa/specs/DESIGN-{CODE}-{feature-name}.md" required="if relevant" />
28
28
  <file type="api" path=".awa/specs/API-{CODE}-{feature-name}.md" required="if relevant" />
@@ -41,6 +41,8 @@ If deriving from existing code (reverse workflow), analyze the codebase to extra
41
41
 
42
42
  ## Rules
43
43
 
44
+ You SHALL ensure the {CODE} matches the corresponding REQ {CODE} for the same feature if one exists.
45
+ You SHALL run `awa spec codes` to help choose the {CODE} extending existing one if logical.
44
46
  You SHALL solidify design with respect to architecture and requirements.
45
47
  You SHALL create and maintain design specifications for features.
46
48
  You SHALL create and maintain API specifications in TypeSpec format.
@@ -49,7 +51,6 @@ You SHALL identify existing requirements to update, or new requirements to creat
49
51
  You SHALL consider edge cases, UX, technical constraints, success criteria.
50
52
  You MUST identify areas where research is needed based on the feature requirements.
51
53
  You MUST conduct research and build up context in the conversation thread.
52
- You SHALL ensure the 3-letter {CODE} used in the filename is unique within the project.
53
54
  You SHALL ensure IMPLEMENTS and VALIDATES cross-references in design components resolve to real requirement IDs and AC IDs.
54
55
  You SHALL support reverse workflow: deriving design from existing code when requested.
55
56
  You SHALL clarify open points with user.
@@ -56,7 +56,7 @@ docs/
56
56
  - Each file covers one topic
57
57
  - Reference style for commands/APIs
58
58
  - Tutorial style for guides
59
- - Keep files under 500 lines; split if larger
59
+ - Keep files under the specified line-limit; split if larger
60
60
 
61
61
  3. Derive from specifications
62
62
  - Do not duplicate; summarize and link
@@ -6,7 +6,7 @@
6
6
  <read path=".awa/.agent/awa.core.md" required="true" error="on not found" />
7
7
  <read path=".awa/rules/*.md" required="true" />
8
8
  <read path=".awa/specs/ARCHITECTURE.md" required="if exists" />
9
- <read path=".awa/.agent/schemas/EXAMPLES.schema.yaml" required="true" error="on not found" />
9
+ <read path=".awa/.agent/schemas/EXAMPLE.schema.yaml" required="true" error="on not found" />
10
10
  </tool>
11
11
 
12
12
  ## User Input
@@ -23,7 +23,7 @@ You **MUST** consider the user input before proceeding (if not empty).
23
23
  <file type="feat" path=".awa/specs/FEAT-{CODE}-{feature-name}.md" required="if relevant" />
24
24
  <file type="requirements" path=".awa/specs/REQ-{CODE}-{feature-name}.md" required="if relevant" />
25
25
  <file type="design" path=".awa/specs/DESIGN-{CODE}-{feature-name}.md" required="if relevant" />
26
- <file type="examples" path=".awa/specs/EXAMPLES-{CODE}-{feature-name}-{nnn}.md" required="if updating" />
26
+ <file type="examples" path=".awa/specs/EXAMPLE-{CODE}-{feature-name}-{nnn}.md" required="if updating" />
27
27
  <file type="code" required="if relevant" />
28
28
 
29
29
  ## Action
@@ -34,7 +34,7 @@ If deriving from existing code (reverse workflow), extract representative usage
34
34
 
35
35
  ## Outputs
36
36
 
37
- <file path=".awa/specs/EXAMPLES-{CODE}-{feature-name}-{nnn}.md" />
37
+ <file path=".awa/specs/EXAMPLE-{CODE}-{feature-name}-{nnn}.md" />
38
38
 
39
39
  ## Rules
40
40
 
@@ -42,7 +42,7 @@ You SHALL provide concrete, detailed, reproducible examples (code, CLI, config).
42
42
  You SHALL include context for each example explaining when to use it and what it demonstrates.
43
43
  You SHALL use the same {CODE} as the corresponding FEAT/REQ for the feature.
44
44
  You SHALL mark the document as INFORMATIVE (not normative).
45
- You SHALL split into multiple files (-001, -002, ...) if a single file would exceed 500 lines.
45
+ You SHALL split into multiple files (-001, -002, ...) if a single file would exceed the line-limit.
46
46
  You SHALL NOT use normative language (SHALL/SHOULD/MAY) — that belongs in REQ documents.
47
47
  You SHALL NOT define acceptance criteria or traceability IDs — that belongs in REQ documents.
48
48
  You SHALL NOT describe design decisions or implementation details — that belongs in DESIGN documents.
@@ -27,6 +27,7 @@ You **MUST** consider the user input before proceeding (if not empty).
27
27
  ## Action
28
28
 
29
29
  Create or update a non-normative feature context document as specified in the instruction above, following awa conventions.
30
+ Consider existing specifications before making changes.
30
31
 
31
32
  If deriving from existing code or requirements (reverse workflow), analyze the codebase and specs to extract the problem statement, conceptual model, and usage scenarios.
32
33
 
@@ -36,13 +37,13 @@ If deriving from existing code or requirements (reverse workflow), analyze the c
36
37
 
37
38
  ## Rules
38
39
 
40
+ You SHALL run `awa spec codes` to help choose the {CODE} extending existing one if logical.
39
41
  You SHALL describe the problem, motivation, and conceptual model for the feature.
40
42
  You SHALL provide concrete usage scenarios that illustrate the feature in action.
41
43
  You SHALL mark the document as INFORMATIVE (not normative).
42
44
  You SHALL NOT use normative language (SHALL/SHOULD/MAY) — that belongs in REQ documents.
43
45
  You SHALL NOT define acceptance criteria or traceability IDs — that belongs in REQ documents.
44
46
  You SHALL NOT describe design decisions or implementation details — that belongs in DESIGN documents.
45
- You SHALL ensure the {CODE} matches the corresponding REQ {CODE} for the same feature.
46
47
  You SHALL use clear, accessible language; define jargon in a glossary if needed.
47
48
  You SHALL support reverse workflow: deriving feature context from existing code or requirements when requested.
48
49
  You SHALL clarify open points with user.
@@ -21,7 +21,7 @@ You **MUST** consider the user input before proceeding (if not empty).
21
21
 
22
22
  <file type="architecture" path=".awa/specs/ARCHITECTURE.md" />
23
23
  <file type="feat" path=".awa/specs/FEAT-{CODE}-{feature-name}.md" required="if relevant" />
24
- <file type="examples" path=".awa/specs/EXAMPLES-{CODE}-{feature-name}-{nnn}.md" required="if relevant" />
24
+ <file type="examples" path=".awa/specs/EXAMPLE-{CODE}-{feature-name}-{nnn}.md" required="if relevant" />
25
25
  <file type="requirements" path=".awa/specs/REQ-{CODE}-{feature-name}.md" required="if relevant" />
26
26
  <file type="design" path=".awa/specs/DESIGN-{CODE}-{feature-name}.md" required="if relevant" />
27
27
  <file type="api" path=".awa/specs/API-{CODE}-{feature-name}.md" required="if relevant" />
@@ -40,7 +40,7 @@ Update or create the ad-hoc plan document(s) as specified in the instruction abo
40
40
  You SHALL create and maintain ad-hoc plans for features, improvements, refactors, or other user requests.
41
41
  You SHALL break down work into detailed, actionable steps
42
42
  You SHALL identify risks, dependencies, and completion criteria
43
- You SHALL ensure the 3-letter {nnn} used in the filename follows the previous plans within the project.
43
+ You SHALL ensure the 3-number {nnn} used in the filename follows the previous plans within the project.
44
44
  You SHOULD NOT write significant code in the plan documents. Code can be used to define data structures and for explanation.
45
45
  You SHOULD consider edge cases, user experience, technical constraints, and success criteria.
46
46
  You SHOULD suggest specific areas where the plan might need clarification or expansion.