aw-spec-cli 0.1.26 → 0.1.28

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 (137) hide show
  1. package/assets/.agents/skills/appweaver/SKILL.md +7 -47
  2. package/assets/.appweaver/ORCH-DIALECT.md +13 -9
  3. package/assets/.appweaver/RULE-PARTITION.md +11 -12
  4. package/assets/.appweaver/STACK-PROFILES.md +260 -108
  5. package/assets/.appweaver/domain.json +1 -1
  6. package/assets/.appweaver/interpreter/run-skill.py +28 -7
  7. package/assets/.appweaver/orchestrator/AGENT-PROFILE.md +38 -10
  8. package/assets/.appweaver/orchestrator/LAUNCHER.md +88 -0
  9. package/assets/.appweaver/orchestrator/README.md +120 -53
  10. package/assets/.appweaver/orchestrator/adapters/claude_agent_sdk.py +1 -1
  11. package/assets/.appweaver/orchestrator/modules/delta-plan.orch.yaml +17 -7
  12. package/assets/.appweaver/orchestrator/modules/domain-select.orch.yaml +6 -4
  13. package/assets/.appweaver/orchestrator/modules/foundation-lane.orch.yaml +237 -0
  14. package/assets/.appweaver/orchestrator/modules/foundation-pack.orch.yaml +392 -0
  15. package/assets/.appweaver/orchestrator/modules/foundation-spec.orch.yaml +548 -0
  16. package/assets/.appweaver/orchestrator/modules/lane-gate.orch.yaml +4 -4
  17. package/assets/.appweaver/orchestrator/modules/tech-select.orch.yaml +3 -3
  18. package/assets/.appweaver/orchestrator/orchestrator.py +162 -63
  19. package/assets/.appweaver/orchestrator/rev-templates/delta-design-template.skeleton.md +5 -4
  20. package/assets/.appweaver/orchestrator/rev-templates/design-template.skeleton.md +3 -1
  21. package/assets/.appweaver/orchestrator/rev-templates/domain-constitution.skeleton.md +2 -2
  22. package/assets/.appweaver/orchestrator/rev-templates/domain-requirements.skeleton.md +2 -2
  23. package/assets/.appweaver/orchestrator/rev-templates/domain-rule-bindings.skeleton.md +21 -13
  24. package/assets/.appweaver/orchestrator/rev-templates/frontend-rule-file.skeleton.md +1 -1
  25. package/assets/.appweaver/orchestrator/rev-templates/tech-rule-bindings.skeleton.md +28 -31
  26. package/assets/.appweaver/orchestrator/rev-templates/technical-constitution.skeleton.md +2 -2
  27. package/assets/.appweaver/orchestrator/rev-templates/technical-rule-file.skeleton.md +1 -1
  28. package/assets/.appweaver/orchestrator/rev-templates/ui-constitution.skeleton.md +3 -3
  29. package/assets/.appweaver/orchestrator/rev-templates/ui-delta-design-template.skeleton.md +4 -1
  30. package/assets/.appweaver/orchestrator/rev-templates/ui-design-template.skeleton.md +6 -4
  31. package/assets/.appweaver/orchestrator/workflows/_smoke.orch.yaml +41 -3
  32. package/assets/.appweaver/orchestrator/workflows/aw-spec-add-component.orch.yaml +1 -1
  33. package/assets/.appweaver/orchestrator/workflows/aw-spec-adopt.orch.yaml +17 -16
  34. package/assets/.appweaver/orchestrator/workflows/aw-spec-analyze-plan-delta.orch.yaml +7 -1
  35. package/assets/.appweaver/orchestrator/workflows/aw-spec-analyze-plan.orch.yaml +7 -1
  36. package/assets/.appweaver/orchestrator/workflows/aw-spec-analyze-slice-delta.orch.yaml +3 -3
  37. package/assets/.appweaver/orchestrator/workflows/aw-spec-analyze-slice.orch.yaml +3 -3
  38. package/assets/.appweaver/orchestrator/workflows/aw-spec-build.orch.yaml +4 -4
  39. package/assets/.appweaver/orchestrator/workflows/aw-spec-characterize.orch.yaml +2 -2
  40. package/assets/.appweaver/orchestrator/workflows/aw-spec-constitution.orch.yaml +61 -12
  41. package/assets/.appweaver/orchestrator/workflows/aw-spec-deploy.orch.yaml +1 -1
  42. package/assets/.appweaver/orchestrator/workflows/aw-spec-foundation.orch.yaml +172 -293
  43. package/assets/.appweaver/orchestrator/workflows/aw-spec-implement.orch.yaml +253 -44
  44. package/assets/.appweaver/orchestrator/workflows/aw-spec-onboard.orch.yaml +72 -71
  45. package/assets/.appweaver/orchestrator/workflows/aw-spec-parity.orch.yaml +2 -2
  46. package/assets/.appweaver/orchestrator/workflows/aw-spec-plan.orch.yaml +38 -14
  47. package/assets/.appweaver/orchestrator/workflows/aw-spec-run.orch.yaml +4 -4
  48. package/assets/.appweaver/orchestrator/workflows/aw-spec-select-bounded-context.orch.yaml +26 -2
  49. package/assets/.appweaver/orchestrator/workflows/aw-spec-select-domain.orch.yaml +21 -15
  50. package/assets/.appweaver/orchestrator/workflows/aw-spec-select-stack.orch.yaml +14 -14
  51. package/assets/.appweaver/orchestrator/workflows/aw-spec-specify.orch.yaml +3 -3
  52. package/assets/.appweaver/orchestrator/workflows/aw-spec-ui-model.orch.yaml +3 -3
  53. package/assets/.appweaver/orchestrator/workflows/aw-spec-ui-prototype.orch.yaml +6 -6
  54. package/assets/.appweaver/scripts/bash/aw-spec-actions.sh +371 -131
  55. package/assets/.appweaver/scripts/powershell/aw-spec-actions.ps1 +293 -76
  56. package/assets/.appweaver/scripts/python/aw-foundation.py +885 -20
  57. package/assets/.appweaver/scripts/python/aw-inventory.py +28 -21
  58. package/assets/.appweaver/scripts/python/aw-plan-coverage.py +2 -2
  59. package/assets/.appweaver/scripts/python/aw-rev-constitution.py +6 -6
  60. package/assets/.appweaver/scripts/python/aw-stack.py +676 -99
  61. package/assets/.appweaver/stack-profiles/angular.json +2 -1
  62. package/assets/.appweaver/stack-profiles/blazor-wasm.json +2 -1
  63. package/assets/.appweaver/stack-profiles/dotnet-webapi.json +18 -3
  64. package/assets/.appweaver/stack-profiles/go-chi.json +6 -1
  65. package/assets/.appweaver/stack-profiles/java-spring.json +14 -5
  66. package/assets/.appweaver/stack-profiles/nextjs.json +2 -1
  67. package/assets/.appweaver/stack-profiles/node-express.json +8 -2
  68. package/assets/.appweaver/stack-profiles/python-fastapi.json +9 -2
  69. package/assets/.appweaver/stack-profiles/react-vite.json +2 -1
  70. package/assets/.appweaver/stack-profiles/sveltekit.json +2 -1
  71. package/assets/.appweaver/stack-profiles/vue-vite.json +2 -1
  72. package/assets/.appweaver/stacks.json +40 -1
  73. package/assets/.appweaver/templates/constitution-ui-template.md +2 -2
  74. package/assets/.appweaver/templates/delta-design-template.md +7 -5
  75. package/assets/.appweaver/templates/design-template.md +3 -0
  76. package/assets/.appweaver/templates/ui-delta-design-template.md +1 -1
  77. package/assets/.appweaver/templates/ui-design-template.md +6 -4
  78. package/assets/.claude/skills/appweaver/SKILL.md +7 -46
  79. package/assets/foundations/dotnet/ModularMonolith/ModularMonolith.Reference.rules.json +31 -0
  80. package/assets/foundations/dotnet/ModularMonolith/ModularMonolith.lane.json +6 -0
  81. package/assets/foundations/dotnet/VerticalSlice/VerticalSlice.Reference.rules.json +16 -0
  82. package/assets/foundations/dotnet/VerticalSlice/VerticalSlice.lane.json +6 -0
  83. package/assets/foundations/foundation.spec.template.txt +98 -0
  84. package/assets/foundations/java/Hexagonal/Hexagonal.lane.json +6 -0
  85. package/assets/foundations/java/Hexagonal/Hexagonal.pack.txt +8 -1
  86. package/assets/foundations/java/Hexagonal/unpack-foundation.sh +4 -5
  87. package/assets/foundations/node/NextAppRouter/NextAppRouter.spec.txt +68 -0
  88. package/assets/guardrails/README.md +31 -17
  89. package/assets/guardrails/{projects/dotnet-default-project → project-specific}/domain-rule-bindings.md +25 -13
  90. package/assets/guardrails/project-specific/tech-rule-bindings.md +296 -0
  91. package/assets/guardrails/technology/dotnet-webapi/PACKAGING.md +58 -4
  92. package/assets/guardrails/technology/dotnet-webapi/api-versioning.md +1 -1
  93. package/assets/guardrails/technology/dotnet-webapi/auditing.md +1 -1
  94. package/assets/guardrails/technology/dotnet-webapi/authorization.md +1 -1
  95. package/assets/guardrails/technology/dotnet-webapi/clean-architecture.md +1 -1
  96. package/assets/guardrails/technology/dotnet-webapi/coding-standards.md +1 -1
  97. package/assets/guardrails/technology/dotnet-webapi/cqrs.md +1 -1
  98. package/assets/guardrails/technology/dotnet-webapi/data-classification.md +1 -1
  99. package/assets/guardrails/technology/dotnet-webapi/dependency-policy.md +1 -1
  100. package/assets/guardrails/technology/dotnet-webapi/eventing.md +1 -1
  101. package/assets/guardrails/technology/dotnet-webapi/folder-structure.md +1 -1
  102. package/assets/guardrails/technology/dotnet-webapi/framework-api-map.md +1 -1
  103. package/assets/guardrails/technology/dotnet-webapi/modular-monolith.md +1 -1
  104. package/assets/guardrails/technology/dotnet-webapi/persistence.md +1 -1
  105. package/assets/guardrails/technology/dotnet-webapi/testing.md +1 -1
  106. package/assets/guardrails/technology/dotnet-webapi/vertical-slices.md +1 -1
  107. package/assets/guardrails/technology/dotnet-webapi/zero-trust.md +1 -1
  108. package/assets/guardrails/technology/nextjs/accessibility-implementation.md +1 -1
  109. package/assets/guardrails/technology/nextjs/api-client.md +1 -1
  110. package/assets/guardrails/technology/nextjs/api-integration.dotnet-webapi.md +1 -1
  111. package/assets/guardrails/technology/nextjs/api-integration.java-spring.md +1 -1
  112. package/assets/guardrails/technology/nextjs/auth-session.md +1 -1
  113. package/assets/guardrails/technology/nextjs/client-security.md +1 -1
  114. package/assets/guardrails/technology/nextjs/component-architecture.md +1 -1
  115. package/assets/guardrails/technology/nextjs/component-conventions.md +2 -2
  116. package/assets/guardrails/technology/nextjs/design-system.md +1 -1
  117. package/assets/guardrails/technology/nextjs/error-handling.md +1 -1
  118. package/assets/guardrails/technology/nextjs/forms-and-validation.md +1 -1
  119. package/assets/guardrails/technology/nextjs/frontend-testing.md +1 -1
  120. package/assets/guardrails/technology/nextjs/i18n.md +1 -1
  121. package/assets/guardrails/technology/nextjs/observability.md +1 -1
  122. package/assets/guardrails/technology/nextjs/performance-budgets.md +1 -1
  123. package/assets/guardrails/technology/nextjs/routing-navigation.md +1 -1
  124. package/assets/guardrails/technology/nextjs/state-management.md +1 -1
  125. package/assets/guardrails/technology/nextjs/ui-constitution.md +3 -3
  126. package/package.json +1 -1
  127. package/assets/.agents/skills/appweaver-demo/SKILL.md +0 -59
  128. package/assets/.appweaver/orchestrator/.smoke-out/smoke.md +0 -6
  129. package/assets/.appweaver/orchestrator/workflows/aw-spec-demo.orch.yaml +0 -100
  130. package/assets/.claude/skills/appweaver-demo/SKILL.md +0 -59
  131. package/assets/.kilocode/agent.json +0 -28
  132. package/assets/.kilocode/workflows/appweaver-demo.md +0 -59
  133. package/assets/.kilocode/workflows/appweaver.md +0 -55
  134. package/assets/guardrails/projects/dotnet-default-project/tech-rule-bindings.md +0 -271
  135. /package/assets/guardrails/{projects/dotnet-default-project → project-specific}/domain/domain-requirements.md +0 -0
  136. /package/assets/guardrails/{projects/dotnet-default-project → project-specific}/frontend/ui-requirements.md +0 -0
  137. /package/assets/guardrails/{projects/dotnet-default-project → project-specific}/service/technical-requirements.md +0 -0
@@ -1,6 +1,6 @@
1
1
  # Coding Standards
2
2
 
3
- > Pure technology (domain-agnostic) — domain forbidden patterns & CI gates in [[coding-standards.domain]]. Commands: `/aw-spec-implement`, `/aw-spec-implement-delta`, `/aw-spec-build`, `/aw-spec-analyze-slice`.
3
+ > Pure technology (domain-agnostic) — domain forbidden patterns & CI gates in [[coding-standards.domain]]. Commands: `/aw-spec-implement-backend`, `/aw-spec-build`, `/aw-spec-analyze-slice`, `/aw-spec-foundation-backend`.
4
4
 
5
5
  ## Naming conventions
6
6
 
@@ -1,6 +1,6 @@
1
1
  # CQRS + Mediator Standards
2
2
 
3
- > Pure technology (domain-agnostic) — domain additions in [[cqrs.domain]]. NON-NEGOTIABLE. Commands: `/aw-spec-plan`.
3
+ > Pure technology (domain-agnostic) — domain additions in [[cqrs.domain]]. NON-NEGOTIABLE. Commands: `/aw-spec-plan-backend`.
4
4
 
5
5
  ## Command / query patterns
6
6
 
@@ -1,6 +1,6 @@
1
1
  # Data Classification Standards
2
2
 
3
- > Pure technology (domain-agnostic) — domain data categories in [[data-classification.domain]]. NON-NEGOTIABLE. Commands: `/aw-spec-plan`.
3
+ > Pure technology (domain-agnostic) — domain data categories in [[data-classification.domain]]. NON-NEGOTIABLE. Commands: `/aw-spec-plan-backend`.
4
4
 
5
5
  ## Classification framework
6
6
 
@@ -1,6 +1,6 @@
1
1
  # Dependency Policy
2
2
 
3
- > Pure technology (domain-agnostic) — domain package rules in [[dependency-policy.domain]]. Commands: `/aw-spec-implement`, `/aw-spec-implement-delta`.
3
+ > Pure technology (domain-agnostic) — domain package rules in [[dependency-policy.domain]]. Commands: `/aw-spec-implement-backend`, `/aw-spec-foundation-backend`.
4
4
 
5
5
  ## Package governance
6
6
 
@@ -1,6 +1,6 @@
1
1
  # Eventing Standards
2
2
 
3
- > Pure technology (domain-agnostic) — domain additions in [[eventing.domain]]. Commands: `/aw-spec-plan`.
3
+ > Pure technology (domain-agnostic) — domain additions in [[eventing.domain]]. Commands: `/aw-spec-plan-backend`.
4
4
 
5
5
  ## Domain events
6
6
 
@@ -1,6 +1,6 @@
1
1
  # Mandatory Folder Structure
2
2
 
3
- > Pure technology (domain-agnostic) — domain additions (Interop adapters, conformance tests, fixtures) in [[folder-structure.domain]]. NON-NEGOTIABLE. Commands: `/aw-spec-plan`, `/aw-spec-implement`, `/aw-spec-implement-delta`.
3
+ > Pure technology (domain-agnostic) — domain additions (Interop adapters, conformance tests, fixtures) in [[folder-structure.domain]]. NON-NEGOTIABLE. Commands: `/aw-spec-plan-backend`, `/aw-spec-implement-backend`, `/aw-spec-foundation-backend`.
4
4
  >
5
5
  > Replace `<SampleProjectName>` with the project name (e.g. `Acme.Billing`).
6
6
 
@@ -1,7 +1,7 @@
1
1
  # Framework API Map — which package and namespace each cited type comes from
2
2
 
3
3
  > Pure technology (domain-agnostic). NON-NEGOTIABLE where it names a package.
4
- > Commands: `/aw-spec-implement`, `/aw-spec-implement-delta`, `/aw-spec-analyze-slice`.
4
+ > Commands: `/aw-spec-implement-backend`, `/aw-spec-analyze-slice`, `/aw-spec-foundation-backend`.
5
5
  >
6
6
  > The rules in this corpus name framework types — `AggregateRootBase<TId>`,
7
7
  > `IAggregateChild`, `IUnitOfWork`. This file says where each one LIVES. Without it a
@@ -1,6 +1,6 @@
1
1
  # Modular Monolith Standards
2
2
 
3
- > Pure technology (domain-agnostic). NON-NEGOTIABLE where marked. Commands: `/aw-spec-plan`.
3
+ > Pure technology (domain-agnostic). NON-NEGOTIABLE where marked. Commands: `/aw-spec-plan-backend`.
4
4
 
5
5
  ## Module boundaries
6
6
 
@@ -1,6 +1,6 @@
1
1
  # Persistence Standards
2
2
 
3
- > Pure technology (domain-agnostic) — domain additions in [[persistence.domain]]. NON-NEGOTIABLE where marked. Commands: `/aw-spec-plan`, `/aw-spec-run`.
3
+ > Pure technology (domain-agnostic) — domain additions in [[persistence.domain]]. NON-NEGOTIABLE where marked. Commands: `/aw-spec-plan-backend`, `/aw-spec-run`.
4
4
 
5
5
  ## EF Core conventions
6
6
 
@@ -1,6 +1,6 @@
1
1
  # Testing Standards
2
2
 
3
- > Pure technology (domain-agnostic) — domain additions in [[testing.domain]]. Commands: `/aw-spec-plan`, `/aw-spec-implement`, `/aw-spec-implement-delta`, `/aw-spec-analyze-slice`.
3
+ > Pure technology (domain-agnostic) — domain additions in [[testing.domain]]. Commands: `/aw-spec-plan-backend`, `/aw-spec-implement-backend`, `/aw-spec-analyze-slice`, `/aw-spec-foundation-backend`.
4
4
 
5
5
  ## Test-first engineering
6
6
 
@@ -1,6 +1,6 @@
1
1
  # Vertical Slice Standards
2
2
 
3
- > Pure technology (domain-agnostic) — domain additions in [[vertical-slices.domain]]. Commands: `/aw-spec-plan`.
3
+ > Pure technology (domain-agnostic) — domain additions in [[vertical-slices.domain]]. Commands: `/aw-spec-plan-backend`.
4
4
 
5
5
  ## Feature organization
6
6
 
@@ -1,6 +1,6 @@
1
1
  # Zero-Trust Standards
2
2
 
3
- > Pure technology (domain-agnostic) — domain additions in [[zero-trust.domain]]. NON-NEGOTIABLE where marked. Commands: `/aw-spec-plan`.
3
+ > Pure technology (domain-agnostic) — domain additions in [[zero-trust.domain]]. NON-NEGOTIABLE where marked. Commands: `/aw-spec-plan-backend`.
4
4
 
5
5
  ## Transport security (mTLS / TLS)
6
6
 
@@ -1,7 +1,7 @@
1
1
  # Accessibility Standards — nextjs (frontend lane)
2
2
 
3
3
  > Pure technology (domain-agnostic). NON-NEGOTIABLE.
4
- > Commands: `/aw-spec-plan-ui`, `/aw-spec-implement-ui`.
4
+ > Commands: `/aw-spec-plan-frontend`, `/aw-spec-implement-frontend`.
5
5
  > Detail layer under `constitution.ui.md` UX-I (accessibility floor).
6
6
 
7
7
  UX-I makes the floor non-negotiable; this file is what meeting it means in practice. The
@@ -1,7 +1,7 @@
1
1
  # API Client Standards — nextjs (frontend lane)
2
2
 
3
3
  > Pure technology (domain-agnostic). NON-NEGOTIABLE.
4
- > Commands: `/aw-spec-implement-ui`.
4
+ > Commands: `/aw-spec-implement-frontend`, `/aw-spec-foundation-frontend`.
5
5
  > Detail layer under `constitution.ui.md` UX-IV (the contract is the only server input)
6
6
  > and UX-VII (mutations flow through one path).
7
7
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  > The CROSS-LANE pairing rules: how the `nextjs` frontend lane consumes an
4
4
  > `dotnet-webapi` service lane. NON-NEGOTIABLE where marked.
5
- > Commands: `/aw-spec-plan-ui`, `/aw-spec-implement-ui`.
5
+ > Commands: `/aw-spec-plan-frontend`, `/aw-spec-implement-frontend`.
6
6
  > Detail layer under `constitution.ui.md` UX-IV (the contract is the only server input).
7
7
 
8
8
  This file is named for the service lane it pairs with, and a project maps it through the
@@ -2,7 +2,7 @@
2
2
 
3
3
  > The CROSS-LANE pairing rules: how the `nextjs` frontend lane consumes a `java-spring`
4
4
  > (Spring Boot) service lane. NON-NEGOTIABLE where marked.
5
- > Commands: `/aw-spec-plan-ui`, `/aw-spec-implement-ui`.
5
+ > Commands: `/aw-spec-plan-frontend`, `/aw-spec-implement-frontend`.
6
6
  > Detail layer under `constitution.ui.md` UX-IV (the contract is the only server input).
7
7
 
8
8
  This file is named for the service lane it pairs with, and a project maps it through the
@@ -1,7 +1,7 @@
1
1
  # Authentication & Session Standards — nextjs (frontend lane)
2
2
 
3
3
  > Pure technology (domain-agnostic). NON-NEGOTIABLE.
4
- > Commands: `/aw-spec-plan-ui`, `/aw-spec-implement-ui`.
4
+ > Commands: `/aw-spec-plan-frontend`, `/aw-spec-implement-frontend`.
5
5
  > Detail layer under `constitution.ui.md` UX-VIII (client state carries no secret) and
6
6
  > UX-IV (the contract is the only server input).
7
7
 
@@ -1,7 +1,7 @@
1
1
  # Client Security Standards — nextjs (frontend lane)
2
2
 
3
3
  > Pure technology (domain-agnostic). NON-NEGOTIABLE.
4
- > Commands: `/aw-spec-implement-ui`.
4
+ > Commands: `/aw-spec-implement-frontend`.
5
5
  > Detail layer under `constitution.ui.md` UX-VIII (client state carries no secret).
6
6
 
7
7
  The client is a hostile environment: its code is readable, its storage is inspectable, and
@@ -1,6 +1,6 @@
1
1
  # Component Architecture Standards — nextjs (frontend lane)
2
2
 
3
- > Pure technology (domain-agnostic). Commands: `/aw-spec-plan-ui`.
3
+ > Pure technology (domain-agnostic). Commands: `/aw-spec-plan-frontend`, `/aw-spec-foundation-frontend`.
4
4
  > Detail layer under `constitution.ui.md` UX-II (design system) and UX-III (server components).
5
5
 
6
6
  The rules the UI design author composes a feature's `§3 Component Structure` from. They
@@ -1,6 +1,6 @@
1
1
  # Component Conventions — nextjs (frontend lane)
2
2
 
3
- > Pure technology (domain-agnostic). Commands: `/aw-spec-implement-ui`.
3
+ > Pure technology (domain-agnostic). Commands: `/aw-spec-implement-frontend`, `/aw-spec-foundation-frontend`.
4
4
  > Detail layer under `constitution.ui.md` UX-II (design system) and its Mandatory
5
5
  > Frontend Folder Structure.
6
6
 
@@ -18,7 +18,7 @@ writing within it.
18
18
  states. Business composition does not live in a route file.
19
19
  - A component reused by two or more features moves to `components/` — and moving it is a
20
20
  decision, recorded in the design, not a refactor made mid-generation.
21
- - Nothing this lane generates is written outside the lane's declared source path.
21
+ - Nothing this lane generates is written outside the declared lane root folder.
22
22
 
23
23
  ## Naming
24
24
 
@@ -1,7 +1,7 @@
1
1
  # Design System Standards — nextjs (frontend lane)
2
2
 
3
3
  > Pure technology (domain-agnostic). NON-NEGOTIABLE.
4
- > Commands: `/aw-spec-plan-ui`, `/aw-spec-implement-ui`.
4
+ > Commands: `/aw-spec-plan-frontend`, `/aw-spec-implement-frontend`, `/aw-spec-foundation-frontend`.
5
5
  > Detail layer under `constitution.ui.md` UX-II (the design system is the only source of
6
6
  > visual truth).
7
7
 
@@ -1,6 +1,6 @@
1
1
  # Interaction & Error State Standards — nextjs (frontend lane)
2
2
 
3
- > Pure technology (domain-agnostic). Commands: `/aw-spec-plan-ui`, `/aw-spec-implement-ui`.
3
+ > Pure technology (domain-agnostic). Commands: `/aw-spec-plan-frontend`, `/aw-spec-implement-frontend`.
4
4
  > Detail layer under `constitution.ui.md` UX-V (every interaction state is specified).
5
5
 
6
6
  The rules behind `design.ui.md §4 Interaction & Flow` — the section a backend-shaped
@@ -1,7 +1,7 @@
1
1
  # Forms & Validation Standards — nextjs (frontend lane)
2
2
 
3
3
  > Pure technology (domain-agnostic). NON-NEGOTIABLE where marked.
4
- > Commands: `/aw-spec-plan-ui`, `/aw-spec-implement-ui`.
4
+ > Commands: `/aw-spec-plan-frontend`, `/aw-spec-implement-frontend`.
5
5
  > Detail layer under `constitution.ui.md` UX-V (every interaction state is specified) and
6
6
  > UX-VII (mutations flow through one path).
7
7
 
@@ -1,7 +1,7 @@
1
1
  # Frontend Testing Standards — nextjs (frontend lane)
2
2
 
3
3
  > Pure technology (domain-agnostic). NON-NEGOTIABLE.
4
- > Commands: `/aw-spec-implement-ui`.
4
+ > Commands: `/aw-spec-implement-frontend`, `/aw-spec-foundation-frontend`.
5
5
  > Detail layer under `constitution.ui.md` UX-XI (frontend test-first).
6
6
 
7
7
  Every file `implement-ui` generates ships with its test. The design says what to test: each
@@ -1,6 +1,6 @@
1
1
  # Internationalization Standards — nextjs (frontend lane)
2
2
 
3
- > Pure technology (domain-agnostic). Commands: `/aw-spec-plan-ui`, `/aw-spec-implement-ui`.
3
+ > Pure technology (domain-agnostic). Commands: `/aw-spec-plan-frontend`, `/aw-spec-implement-frontend`.
4
4
  > Detail layer under `constitution.ui.md` UX-X (internationalization is structural).
5
5
 
6
6
  Internationalization is structural: it is cheap while the surface is being designed and
@@ -1,7 +1,7 @@
1
1
  # Frontend Observability Standards — nextjs (frontend lane)
2
2
 
3
3
  > Pure technology (domain-agnostic). NON-NEGOTIABLE where marked.
4
- > Commands: `/aw-spec-implement-ui`.
4
+ > Commands: `/aw-spec-implement-frontend`.
5
5
  > Detail layer under `constitution.ui.md` UX-VIII (client state carries no secret).
6
6
 
7
7
  The service is instrumented end to end — OpenTelemetry, structured logs, trace propagation
@@ -1,7 +1,7 @@
1
1
  # Performance Budget Standards — nextjs (frontend lane)
2
2
 
3
3
  > Pure technology (domain-agnostic). NON-NEGOTIABLE.
4
- > Commands: `/aw-spec-plan-ui`, `/aw-spec-implement-ui`.
4
+ > Commands: `/aw-spec-plan-frontend`, `/aw-spec-implement-frontend`.
5
5
  > Detail layer under `constitution.ui.md` UX-IX (the performance budget is a gate).
6
6
 
7
7
  A budget that is not enforced is an aspiration. Core Web Vitals thresholds and a per-route
@@ -1,6 +1,6 @@
1
1
  # Routing & Navigation Standards — nextjs (frontend lane)
2
2
 
3
- > Pure technology (domain-agnostic). Commands: `/aw-spec-plan-ui`.
3
+ > Pure technology (domain-agnostic). Commands: `/aw-spec-plan-frontend`, `/aw-spec-foundation-frontend`.
4
4
  > Detail layer under `constitution.ui.md` UX-III (server components) and UX-V (every
5
5
  > interaction state specified).
6
6
 
@@ -1,6 +1,6 @@
1
1
  # Client State Standards — nextjs (frontend lane)
2
2
 
3
- > Pure technology (domain-agnostic). Commands: `/aw-spec-plan-ui`.
3
+ > Pure technology (domain-agnostic). Commands: `/aw-spec-plan-frontend`.
4
4
  > Detail layer under `constitution.ui.md` UX-VI (caching declared), UX-VII (one mutation
5
5
  > path) and UX-VIII (client state carries no secret).
6
6
 
@@ -19,7 +19,7 @@ continue them — the two govern different lanes and version independently.
19
19
 
20
20
  ## Declared Lane
21
21
 
22
- Stack **nextjs** — Next.js (TypeScript, App Router), lane id `web`, owning `web/`.
22
+ Stack **nextjs** — Next.js (TypeScript, App Router), lane id `web`, owning `frontend/` (the default lane root folder).
23
23
 
24
24
  Where `.appweaver/stacks.json` declares a frontend lane, that declaration is authoritative for the
25
25
  lane id and root; a scaffold that disagrees fails `STACK-MISMATCH:` rather than rewriting it.
@@ -121,11 +121,11 @@ another stack's assumptions. Elsewhere in this corpus the file is referenced as
121
121
 
122
122
  ## Mandatory Frontend Folder Structure
123
123
 
124
- The whole layout sits under the lane's root (`web/`) and never adds to the service lane's
124
+ The whole layout sits under the lane root folder (`frontend/` by default) and never adds to the service lane's
125
125
  structure.
126
126
 
127
127
  ```
128
- web/
128
+ frontend/
129
129
  app/ # App Router — route segments, layouts, loading/error/not-found
130
130
  components/ # design-system compositions, presentational only
131
131
  features/<Feature>/ # one folder per spec feature: its components, hooks, actions
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "aw-spec-cli",
3
- "version": "0.1.26",
3
+ "version": "0.1.28",
4
4
  "description": "AppWeaver Spec-Driven Development CLI - scaffolds projects with vertical slices, DDD, CQRS, and agent skills",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -1,59 +0,0 @@
1
- ---
2
- name: "appweaver-demo"
3
- description: "Prototype launcher (Antigravity): run the aw-orchestrator using the specified strategy (spawn, agent, sdk, sdk-apply)."
4
- argument-hint: "Optional strategy ('agent', 'spawn', 'sdk', 'sdk-apply') and/or k=value vars (e.g. 'agent out_dir=...')"
5
- compatibility: "Requires .appweaver/orchestrator/ and the gemini CLI on PATH"
6
- user-invocable: true
7
- disable-model-invocation: false
8
- ---
9
-
10
- # Orchestrator Launcher
11
-
12
- All orchestration lives in the workflow YAML and is executed by `.appweaver/orchestrator/orchestrator.py` (the general, agent-agnostic engine). The interpreter assembles the COMPLETE payload (system + user) for every request; you never author generation context yourself.
13
-
14
- - **Engine + workflow (general):** `.appweaver/orchestrator/orchestrator.py`, `*.orch.yaml`
15
- - **This agent's transport profile:** `.agents/agent.json`
16
-
17
- > Antigravity spawns via the `agy` CLI (Gemini-based; no `--system-prompt`, so
18
- > `system` is folded into the prompt). Its `sdk` block declares the SDK the
19
- > `sdk`/`sdk-apply` strategies import (`google-antigravity`) and the adapter
20
- > (`.appweaver/orchestrator/adapters/google_antigravity.py`, shared per-SDK)
21
- > that owns its calling convention.
22
-
23
- ## Execution Steps
24
-
25
- 1. **Parse Arguments**:
26
- - Identify the requested strategy (one of: `agent`, `spawn`, `sdk`, `sdk-apply`). If the user specifies a strategy as the first argument, use it. Otherwise, default to `spawn`.
27
- - Always pass the strategy explicitly: `--strategy <strategy>`.
28
- - `--agent-profile .agents/agent.json` is required for `spawn`, `sdk`, and `sdk-apply`:
29
- `spawn` reads the CLI to launch (`agy`) from it; `sdk`/`sdk-apply` read the SDK
30
- package/module (and its `adapter` file) to import from its `sdk` block.
31
- If the SDK package isn't installed, add `--sdk-install` so the engine
32
- pip-installs the declared package first. (`agent` needs no profile.)
33
- - `--checkpoint .appweaver/orchestrator/.demo-out/demo.state.json` is required for
34
- `sdk-apply` and `agent` (suspend/resume — follow the loop in step 3).
35
- - `spawn` accepts `--model <name>` (e.g. `gemini-2.5-pro`); isolation is
36
- best-effort for Antigravity (no `--bare` equivalent). `sdk`/`sdk-apply`
37
- accept `--model <name>`; isolation is intrinsic (fresh SDK session).
38
-
39
- 2. **Run the Interpreter**:
40
- Run the command (include only the bracketed flags that apply to the chosen strategy):
41
- ```bash
42
- python3 .appweaver/orchestrator/orchestrator.py \
43
- .appweaver/orchestrator/workflows/aw-spec-demo.orch.yaml \
44
- --strategy <strategy> \
45
- [--agent-profile .agents/agent.json] # spawn, sdk, sdk-apply \
46
- [--checkpoint .appweaver/orchestrator/.demo-out/demo.state.json] # sdk-apply, agent \
47
- --json
48
- ```
49
-
50
- 3. **Handle Suspend/Resume Loop (for `agent` or `sdk-apply` strategies)**:
51
- - If the command exits with code `2` (suspend):
52
- - Read the prompt from the sidecar file `<checkpoint-path>.user.md` (and system instructions from `<checkpoint-path>.system.md`).
53
- - Fulfill the request directly using your own tools (e.g., implementing the handler or reviewing files in the workspace).
54
- - Write the final generation or review output to `<checkpoint-path>.response.md`.
55
- - Re-run the exact same command.
56
- - Repeat until the orchestrator exits with code `0`.
57
-
58
- 4. **Report**:
59
- Report the final JSON outputs (`status`, `outputs`, `review_pass`, generated file paths, etc.) to the user.
@@ -1,6 +0,0 @@
1
- <!-- authored by aw-orchestrator MOCK transport -->
2
- <!-- target: .appweaver/orchestrator/.smoke-out/smoke.md -->
3
- <!-- envelope: system=[] context=['.appweaver/orchestrator/.smoke-out/smoke.md'] -->
4
- <!-- task chars: 48 -->
5
-
6
- # (mock content)
@@ -1,100 +0,0 @@
1
- # =============================================================================
2
- # aw-spec-demo.orch.yaml — a runnable demo workflow for the aw-orchestrator.
3
- # Launch via the parametric skill: /appweaver demo [strategy]
4
- #
5
- # It walks the exact loop from the diagram:
6
- # build_context → agent_generate (fresh) → agent_review (fresh) → repeat
7
- #
8
- # Run it (safe, no model calls — prints the assembled payloads):
9
- # python3 .appweaver/orchestrator/orchestrator.py .appweaver/orchestrator/workflows/aw-spec-demo.orch.yaml
10
- #
11
- # Run it for real (spawns fresh `claude -p --bare` per generation):
12
- # python3 .appweaver/orchestrator/orchestrator.py .appweaver/orchestrator/workflows/aw-spec-demo.orch.yaml \
13
- # --transport claude --model opus --budget 0.50
14
- # =============================================================================
15
-
16
- dialect: aw-spec.orchestrator/v1
17
- name: demo-fresh-generation
18
-
19
- vars:
20
- out_dir: .appweaver/orchestrator/.demo-out
21
- review_pass: "false" # loop guard, flipped by agent_review
22
-
23
- workflow:
24
-
25
- # 1. Builds Complete Context — the interpreter reads standards (→ system) and
26
- # any prior artifacts (→ user context). Every standard it loads is kit-resident,
27
- # so the demo runs in a bare checkout with no guardrails/ tree at all.
28
- - id: ctx_generate
29
- action: build_context
30
- system:
31
- - { path: .appweaver/ai-rules.md } # kit-resident, so the demo needs no project tree
32
- context:
33
- - { path: "{{out_dir}}/spec.md", optional: true }
34
-
35
- # 2. Invoke Claude Code (FRESH generation) — it decides the file path(s) itself
36
- # (per the loaded folder-structure/architecture standards), writes them with
37
- # its tools, and REPORTS the paths back. The interpreter binds that list.
38
- - id: gen_handler
39
- action: agent_generate
40
- tools: "Read,Write,Edit,Bash"
41
- permission_mode: acceptEdits
42
- task: |
43
- Implement a CQRS command handler `CreateOrderHandler` for a "Create Order"
44
- feature, following the loaded Clean Architecture + CQRS standards. Keep it
45
- compilable C#; no TODOs.
46
- outputs:
47
- - { name: gen_status, from: "$.status" }
48
- - { name: gen_summary, from: "$.summary" }
49
- - { name: gen_files, from: "$.files" } # the paths the agent chose
50
-
51
- # 3. Review the current output — a SECOND fresh generation, read-only, that
52
- # judges the files the generation reported and returns pass/issues.
53
- - id: review_handler
54
- action: agent_review
55
- review_of_var: gen_files
56
- task: |
57
- Review the handler for compliance with the loaded standards (naming, layer
58
- boundaries, CQRS separation). Decide pass/fail.
59
- outputs:
60
- - { name: review_pass, from: "$.pass" }
61
- - { name: review_issues, from: "$.issues" }
62
-
63
- # 4. If review failed, rebuild context (now including the issues) and
64
- # regenerate — up to 3 times. This is the "…continues" cycle.
65
- - id: revise
66
- action: loop
67
- while: "{{review_pass}} != true"
68
- max_iterations: 3
69
- steps:
70
- - id: ctx_revise
71
- action: build_context
72
- vars:
73
- issues: "{{review_issues}}"
74
- system:
75
- - { path: .appweaver/ai-rules.md }
76
- context_from: gen_files # the files the agent chose last round
77
- - id: regen
78
- action: agent_generate
79
- tools: "Read,Write,Edit"
80
- task: |
81
- Fix these review issues in the file(s) provided in context, preserving
82
- everything already correct: {{issues}}
83
- outputs:
84
- - { name: gen_files, from: "$.files" }
85
- - id: rereview
86
- action: agent_review
87
- review_of_var: gen_files
88
- task: Re-review after the fix. Decide pass/fail.
89
- outputs:
90
- - { name: review_pass, from: "$.pass" }
91
- - { name: review_issues, from: "$.issues" }
92
- - id: stop_when_pass
93
- action: break
94
- condition: "{{review_pass}} == true"
95
-
96
- outputs:
97
- generated: "{{gen_summary}}"
98
- review_pass: "{{review_pass}}"
99
- files: "{{gen_files}}" # decided by the fresh agent, not the interpreter
100
- next: "interpreter continues to the next workflow step"
@@ -1,59 +0,0 @@
1
- ---
2
- name: "appweaver-demo"
3
- description: "Prototype launcher (Claude Code): run the aw-orchestrator using the specified strategy (spawn, agent, sdk, sdk-apply)."
4
- argument-hint: "Optional strategy ('agent', 'spawn', 'sdk', 'sdk-apply') and/or k=value vars (e.g. 'agent out_dir=...')"
5
- compatibility: "Requires .appweaver/orchestrator/ and the claude CLI on PATH"
6
- user-invocable: true
7
- disable-model-invocation: false
8
- ---
9
-
10
- # Orchestrator Launcher
11
-
12
- All orchestration lives in the workflow YAML and is executed by `.appweaver/orchestrator/orchestrator.py` (the general, agent-agnostic engine). The interpreter assembles the COMPLETE payload (system + user) for every request; you never author generation context yourself.
13
-
14
- - **Engine + workflow (general):** `.appweaver/orchestrator/orchestrator.py`, `*.orch.yaml`
15
- - **This agent's transport profile:** `.claude/agent.json`
16
-
17
- > Claude Code spawns via the `claude -p` CLI (native `--system-prompt`,
18
- > `--tools`, and `--bare` isolation). Its `sdk` block declares the SDK the
19
- > `sdk`/`sdk-apply` strategies import (`claude-agent-sdk`) and the adapter
20
- > (`.appweaver/orchestrator/adapters/claude_agent_sdk.py`, shared per-SDK)
21
- > that owns its calling convention.
22
-
23
- ## Execution Steps
24
-
25
- 1. **Parse Arguments**:
26
- - Identify the requested strategy (one of: `agent`, `spawn`, `sdk`, `sdk-apply`). If the user specifies a strategy as the first argument, use it. Otherwise, default to `spawn`.
27
- - Always pass the strategy explicitly: `--strategy <strategy>`.
28
- - `--agent-profile .claude/agent.json` is required for `spawn`, `sdk`, and `sdk-apply`:
29
- `spawn` reads the CLI to launch from it; `sdk`/`sdk-apply` read the SDK
30
- package/module (and its `adapter` file) to import from its `sdk` block.
31
- If the SDK package isn't installed, add `--sdk-install` so the engine
32
- pip-installs the declared package first. (`agent` needs no profile.)
33
- - `--checkpoint .appweaver/orchestrator/.demo-out/demo.state.json` is required for
34
- `sdk-apply` and `agent` (suspend/resume — follow the loop in step 3).
35
- - `spawn` may also add `--isolation bare|fresh` and `--model <name>` (bare is
36
- strongest; use it when `ANTHROPIC_API_KEY` is set). `sdk`/`sdk-apply` accept
37
- `--model <name>`; isolation is intrinsic (fresh SDK session, no settings).
38
-
39
- 2. **Run the Interpreter**:
40
- Run the command (include only the bracketed flags that apply to the chosen strategy):
41
- ```bash
42
- python3 .appweaver/orchestrator/orchestrator.py \
43
- .appweaver/orchestrator/workflows/aw-spec-demo.orch.yaml \
44
- --strategy <strategy> \
45
- [--agent-profile .claude/agent.json] # spawn, sdk, sdk-apply \
46
- [--checkpoint .appweaver/orchestrator/.demo-out/demo.state.json] # sdk-apply, agent \
47
- --json
48
- ```
49
-
50
- 3. **Handle Suspend/Resume Loop (for `agent` or `sdk-apply` strategies)**:
51
- - If the command exits with code `2` (suspend):
52
- - Read the prompt from the sidecar file `<checkpoint-path>.user.md` (and system instructions from `<checkpoint-path>.system.md`).
53
- - Fulfill the request directly using your own tools (e.g., implementing the handler or reviewing files in the workspace).
54
- - Write the final generation or review output to `<checkpoint-path>.response.md`.
55
- - Re-run the exact same command.
56
- - Repeat until the orchestrator exits with code `0`.
57
-
58
- 4. **Report**:
59
- Report the final JSON outputs (`status`, `outputs`, `review_pass`, generated file paths, etc.) to the user.
@@ -1,28 +0,0 @@
1
- {
2
- "name": "kilocode",
3
- "sdk": {
4
- "type": "claude-agent-sdk",
5
- "package": "claude-agent-sdk",
6
- "module": "claude_agent_sdk",
7
- "adapter": "../.appweaver/orchestrator/adapters/claude_agent_sdk.py"
8
- },
9
- "runtime": "Kilo Code launches the interpreter; generation delegates to the Claude Code CLI",
10
- "note": "Kilo Code is a VS Code extension with no standalone headless generation CLI, so this profile reuses `claude -p` for the fresh generation. To generate via Gemini instead, replace bin/args/system/user/tools_flag/approval with the .agents (antigravity) profile's values.",
11
- "bin": "claude",
12
- "args": ["-p", "--output-format", "json", "--no-session-persistence"],
13
- "model_flag": "--model",
14
- "system": { "flag": "--system-prompt" },
15
- "user": { "mode": "stdin" },
16
- "tools_flag": "--tools",
17
- "approval": {
18
- "acceptEdits": ["--permission-mode", "acceptEdits"],
19
- "bypassPermissions": ["--permission-mode", "bypassPermissions"],
20
- "default": ["--permission-mode", "default"]
21
- },
22
- "isolation": {
23
- "bare": ["--bare"],
24
- "fresh": ["--setting-sources", ""]
25
- },
26
- "budget_flag": "--max-budget-usd",
27
- "result_keys": ["result"]
28
- }