@novare-technologies/nvaid 0.0.0-stage → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (30) hide show
  1. package/README.md +137 -2
  2. package/dist/cli.js +476 -0
  3. package/package.json +46 -4
  4. package/templates/commands/apply.md +28 -0
  5. package/templates/commands/breakdown.md +27 -0
  6. package/templates/commands/contracts.md +35 -0
  7. package/templates/commands/intent.md +32 -0
  8. package/templates/nvaid/DESIGN-CODE-DICTIONARY.md +90 -0
  9. package/templates/nvaid/PROJECT-RULES.md +93 -0
  10. package/templates/nvaid/config.yml +74 -0
  11. package/templates/nvaid/intents/.gitkeep +0 -0
  12. package/templates/rules/ISSUE-TRACKER-TEMPLATE.md +221 -0
  13. package/templates/rules/backend-architecture-contract-generation-rules.md +56 -0
  14. package/templates/rules/customer-experience-contract-generation-rules.md +51 -0
  15. package/templates/rules/frontend-architecture-contract-generation-rules.md +56 -0
  16. package/templates/rules/quality-architecture-contract-generation-rules.md +86 -0
  17. package/templates/rules/solutions-architecture-contract-generation-rules.md +59 -0
  18. package/templates/rules/unit-breakdown-rules.md +121 -0
  19. package/templates/skills/backend/SKILL.md +34 -0
  20. package/templates/skills/customer-experience/SKILL.md +26 -0
  21. package/templates/skills/daily-construction-update/SKILL.md +27 -0
  22. package/templates/skills/frontend/SKILL.md +30 -0
  23. package/templates/skills/github/SKILL.md +142 -0
  24. package/templates/skills/pr-review/SKILL.md +119 -0
  25. package/templates/skills/project-ticketing/SKILL.md +26 -0
  26. package/templates/skills/quality/SKILL.md +31 -0
  27. package/templates/skills/r3-analytics/SKILL.md +26 -0
  28. package/templates/skills/release-plan/SKILL.md +27 -0
  29. package/templates/skills/solutions/SKILL.md +29 -0
  30. package/templates/skills/unit-breakdown/SKILL.md +31 -0
@@ -0,0 +1,51 @@
1
+ ---
2
+ document: Customer Experience Contract — Generation Rules
3
+ project: "{{PROJECT_NAME}}"
4
+ version: 0.1.0
5
+ owner: "[Customer Experience Architect name]"
6
+ last_updated: "[YYYY-MM-DD]"
7
+ status: draft
8
+ ---
9
+
10
+ # Customer Experience Contract: Generation Rules
11
+
12
+ **What this file is:** the rules the AI agent follows to draft a Customer Experience
13
+ Contract for an Intent, during Mob Elaboration Phases 2–5 — what triggers producing one,
14
+ and what it must contain when it does.
15
+
16
+ **What this file is not:** not the worked example —
17
+ `docs/templates/samples/contracts/customer-experience-contract.md` is the canonical
18
+ shape and sign-off format, filled in for `INTENT-004`. Not the draft/human-edit
19
+ relationship either — every generated contract is a starting framework, never a verdict;
20
+ see the AI-Native Engineering Model's §Mob Elaboration for how the Customer Experience
21
+ Architect accepts, extends, or simplifies it before Sign-Off.
22
+
23
+ **Companion files:** [unit-breakdown-rules.md](./unit-breakdown-rules.md) (same
24
+ Elaboration session). The other five `*-architecture-contract-generation-rules.md` files
25
+ are siblings, one per role.
26
+
27
+ ---
28
+
29
+ ## 1. When This Contract Is Required
30
+
31
+ **Always.** Every Intent originates from, or must be validated against, a real business
32
+ need — the Customer Experience Architect is the one who closes that loop after the
33
+ technical contracts land, confirming the room's final shape still serves it.
34
+
35
+ ## 2. Required Content
36
+
37
+ - **Reconciliation Against the Original Intent.** Where the final, technically-grounded
38
+ shape narrowed, resolved, or held unchanged against what `intent.md` originally said —
39
+ named explicitly, not silently absorbed into the acceptance criteria without comment.
40
+ - **Final Acceptance Criteria.** The technically-grounded version of the Intent's own
41
+ Success Criteria, incorporating what the other contracts actually committed to — not a
42
+ restatement of the Intent verbatim.
43
+ - **What "Done" Looks Like to the Business.** Tied to a concrete validation scenario, not
44
+ "the code merged."
45
+ - **Sign-Off.**
46
+
47
+ ## 3. Change Log
48
+
49
+ | Version | Date | Change | Trigger |
50
+ |---|---|---|---|
51
+ | 0.1.0 | [date] | Initial version | Companion to the five sibling `*-contract-generation-rules.md` files |
@@ -0,0 +1,56 @@
1
+ ---
2
+ document: Frontend Architecture Contract — Generation Rules
3
+ project: "{{PROJECT_NAME}}"
4
+ version: 0.1.0
5
+ owner: "[Identity Access and Frontend Architect name]"
6
+ last_updated: "[YYYY-MM-DD]"
7
+ status: draft
8
+ ---
9
+
10
+ # Frontend Architecture Contract: Generation Rules
11
+
12
+ **What this file is:** the rules the AI agent follows to draft a Frontend (Identity
13
+ Access and Frontend) Architecture Contract for an Intent, during Mob Elaboration Phases
14
+ 2–5 — what triggers producing one, and what it must contain when it does.
15
+
16
+ **What this file is not:** not the worked example —
17
+ `docs/templates/samples/contracts/frontend-architecture-contract.md` is the canonical
18
+ shape and sign-off format, filled in for `INTENT-004`. Not the draft/human-edit
19
+ relationship either — every generated contract is a starting framework, never a verdict;
20
+ see the AI-Native Engineering Model's §Mob Elaboration for how the Identity Access and
21
+ Frontend Architect accepts, extends, or simplifies it before Sign-Off.
22
+
23
+ **Companion files:** [unit-breakdown-rules.md](./unit-breakdown-rules.md) (same
24
+ Elaboration session). The other five `*-architecture-contract-generation-rules.md` files
25
+ are siblings, one per role.
26
+
27
+ ---
28
+
29
+ ## 1. When This Contract Is Required
30
+
31
+ Any Intent with at least one Unit touching the frontend (web or mobile), a design
32
+ system component, or an identity/access/RBAC/SSO surface. Skipped only for Intents with
33
+ zero user-facing or access-model impact — rare, since most Intents eventually surface
34
+ somewhere in the UI.
35
+
36
+ ## 2. Required Content
37
+
38
+ - **Consumes.** Which Backend contract (if any) this one consumes verbatim, with
39
+ confirmation that no field is locally reinterpreted or renamed.
40
+ - **UI Flow.** The concrete step-by-step, tied to specific screens or components — not a
41
+ general description of the feature.
42
+ - **Shared Derivations, Sourced Not Re-Derived.** Point to the Backend contract's version
43
+ of anything both roles need (an ID derivation, a naming rule); never re-derive it
44
+ independently.
45
+ - **Identity / Access Implications.** Stated explicitly even when the answer is "none for
46
+ this Intent" — never left implicit. This is the one open risk area (SRS §9, no
47
+ RBAC/SSO in POC scope) most likely to get silently assumed away if it isn't required in
48
+ writing every time.
49
+ - **Components Touched (Design-Code Dictionary impact).**
50
+ - **Sign-Off.**
51
+
52
+ ## 3. Change Log
53
+
54
+ | Version | Date | Change | Trigger |
55
+ |---|---|---|---|
56
+ | 0.1.0 | [date] | Initial version | Companion to the five sibling `*-contract-generation-rules.md` files |
@@ -0,0 +1,86 @@
1
+ ---
2
+ document: Quality Architecture Contract — Generation Rules
3
+ project: "{{PROJECT_NAME}}"
4
+ version: 0.5.0
5
+ owner: "[Quality Architect name]"
6
+ last_updated: "[YYYY-MM-DD]"
7
+ status: draft
8
+ ---
9
+
10
+ # Quality Architecture Contract: Generation Rules
11
+
12
+ **What this file is:** the rules the AI agent follows to draft a Quality Architecture
13
+ Contract for an Intent, during Mob Elaboration Phases 2–5 — what triggers producing one,
14
+ and what it must contain when it does. This file owns the **Intent-Specific Gates** only
15
+ (`PROJECT-RULES.md` §5.2) — content that's regenerated fresh per Intent. It does not
16
+ define, and a generated contract must never redefine, the **Solution-Specific Gates**
17
+ (Build, Code Coverage, Code Quality, Reusability/Duplication, Regression Test, SAST) —
18
+ those are fixed codebase-wide thresholds set once in §5.2, not something any single
19
+ Intent opts into or out of.
20
+
21
+ **What this file is not:** not the worked example —
22
+ `docs/templates/samples/contracts/quality-architecture-contract.md` is the canonical
23
+ shape and sign-off format, filled in for `INTENT-004`. Not the draft/human-edit
24
+ relationship either — every generated contract is a starting framework, never a verdict;
25
+ see the AI-Native Engineering Model's §Mob Elaboration for how the Quality Architect
26
+ accepts, extends, or simplifies it before Sign-Off.
27
+
28
+ **Companion files:** [unit-breakdown-rules.md](./unit-breakdown-rules.md) (same
29
+ Elaboration session). The other five `*-architecture-contract-generation-rules.md` files
30
+ are siblings, one per role.
31
+
32
+ ---
33
+
34
+ ## 1. When This Contract Is Required
35
+
36
+ **Almost always.** Any Intent that reaches Implementation (Fig. 2 Stage 6) at all gets a
37
+ Quality Architecture Contract. The rare exception is an Intent whose Units are pure
38
+ documentation or process changes with no code path to test.
39
+
40
+ ## 2. Required Content
41
+
42
+ - **Required Test Coverage table.** One row per meaningful scenario, and — this is the
43
+ load-bearing rule, not a formatting preference — **every row traces to one of the
44
+ owning Unit's own stated Acceptance Criteria** (`unit-XXX-design.md`, per
45
+ `unit-breakdown-rules.md` §2), not surfaced independently from Elaboration discussion
46
+ and hoped to line up. Each row is also classified by type — never left as an unlabeled
47
+ list:
48
+ - **Happy Path** — the primary success scenario(s).
49
+ - **Negative Path** — deliberate invalid input, with a specific expected failure
50
+ response (not just "it errors").
51
+ - **Edge Case** — a boundary condition or ambiguous scenario that's neither a clean
52
+ success nor a clean rejection. This is where a Known Gap most often originates — see
53
+ below.
54
+
55
+ **Both directions of the trace are checked, not just one:** every Acceptance
56
+ Criterion gets at least one covering row, and every row names the criterion it
57
+ verifies — or is marked explicitly supplementary rather than left looking like
58
+ undocumented coverage. A criterion with no covering row is a Known Gap, logged below,
59
+ not silently assumed to be "probably fine." The worked example demonstrates exactly
60
+ this: one row in `quality-architecture-contract.md` traces to nothing, which is how
61
+ its Known Gap got caught rather than missed.
62
+
63
+ Collectively, this table is what `PROJECT-RULES.md` §5.2's Unit Test Gate (and, where
64
+ more than one component is touched, the Integration Test Gate) run against — both
65
+ Intent-Specific. See §5.2 for the full nine-gate taxonomy and where the line sits
66
+ against the six fixed Solution-Specific gates this file never touches.
67
+ - **NFRs in Scope (Intent NFR gate).** Which of the SRS's existing non-functional
68
+ requirements this Intent's Units are held to, *beyond* the solution-wide baseline
69
+ §5.2 already sets; state "none beyond the standing baseline" explicitly when true,
70
+ rather than leaving the section blank.
71
+ - **Known Gaps.** Anything the room identified as untested and consciously accepted —
72
+ flagged, not silently dropped. Matches the worked example's `{user}`-derivation
73
+ collision gap.
74
+ - **Definition of Done addition**, specific to this Intent, beyond `PROJECT-RULES.md`
75
+ §5.1's standing checklist — only if this Intent actually needs one.
76
+ - **Sign-Off.**
77
+
78
+ ## 3. Change Log
79
+
80
+ | Version | Date | Change | Trigger |
81
+ |---|---|---|---|
82
+ | 0.1.0 | [date] | Initial version | Companion to the five sibling `*-contract-generation-rules.md` files |
83
+ | 0.2.0 | [date] | Required Test Coverage rows must now be classified Happy Path / Negative Path / Edge Case, and explicitly tied to `PROJECT-RULES.md` §5.2's Unit/Integration Test Gates | Quality gate types were unspecified; §5.2 was a placeholder |
84
+ | 0.3.0 | [date] | Scoped this file to Intent-Specific Gates only; Solution-Specific Gates (Code Coverage, Code Quality, Reusability, SAST, Build) are fixed in §5.2 and out of scope for any generated contract | Gate taxonomy split into Intent-Specific vs. Solution-Specific categories |
85
+ | 0.4.0 | [date] | Required Test Coverage rows must now trace to the owning Unit's stated Acceptance Criteria in both directions — every criterion covered, every row justified | Should a Unit's acceptance criteria be the same thing its unit tests are based on? |
86
+ | 0.5.0 | [date] | Solution-Specific gate list now includes Regression Test (added in `PROJECT-RULES.md` §5.2) — six fixed gates, nine total | Should Quality Gates include a card for regression testing? |
@@ -0,0 +1,59 @@
1
+ ---
2
+ document: Solutions Architecture Contract — Generation Rules
3
+ project: "{{PROJECT_NAME}}"
4
+ version: 0.1.0
5
+ owner: "[Solutions Architect name]"
6
+ last_updated: "[YYYY-MM-DD]"
7
+ status: draft
8
+ ---
9
+
10
+ # Solutions Architecture Contract: Generation Rules
11
+
12
+ **What this file is:** the rules the AI agent follows to draft a Solutions Architecture
13
+ Contract for an Intent, during Mob Elaboration Phases 2–5 — what triggers producing one,
14
+ and what it must contain when it does.
15
+
16
+ **What this file is not:** not the worked example —
17
+ `docs/templates/samples/contracts/solutions-architecture-contract.md` is the canonical
18
+ shape and sign-off format, filled in for `INTENT-004`. Not the draft/human-edit
19
+ relationship either — every generated contract is a starting framework, never a verdict;
20
+ see the AI-Native Engineering Model's §Mob Elaboration for how the Solutions Architect
21
+ accepts, extends, or simplifies it before Sign-Off.
22
+
23
+ **Companion files:** [unit-breakdown-rules.md](./unit-breakdown-rules.md) (same
24
+ Elaboration session). The other five `*-architecture-contract-generation-rules.md` files
25
+ are siblings, one per role.
26
+
27
+ ---
28
+
29
+ ## 1. When This Contract Is Required
30
+
31
+ **Always.** Every Intent gets a Solutions Architecture Contract, even when the honest
32
+ assessment is "no cross-cutting impact, no new ADR needed." This is the one contract
33
+ never marked "not pulled in" — someone has to always confirm nothing systemic was
34
+ missed, and that confirmation *is* the contract. An empty-looking assessment is a
35
+ completed one, not a skipped one.
36
+
37
+ ## 2. Required Content
38
+
39
+ - **System-Level Assessment.** Does this Intent introduce a new system container, cross
40
+ a boundary named in the SRS's System Containers (Fig. 2), or need a new ADR? State the
41
+ answer plainly, including when it's "no" on every count — don't omit the section
42
+ because the answer is negative.
43
+ - **What This Intent Is Allowed to Touch.** An explicit boundary statement: which
44
+ containers/components are in scope for this Intent's Units of Work, and which are
45
+ explicitly out.
46
+ - **AI-Agent Guardrail Implications.** Does this Intent introduce any unsupervised-action
47
+ surface `PROJECT-RULES.md` §7 doesn't already cover — a new destructive operation, a
48
+ new external API call, a new credential path? Flag it explicitly; don't assume the
49
+ existing rules cover a case they were never written against.
50
+ - **Cross-Role Consistency Check.** Confirms the other contracts produced this session
51
+ don't contradict each other — this is the Solutions Architect's half of Phase 6's
52
+ Consistency Gate, recorded in writing rather than only spoken in the room.
53
+ - **Sign-Off.**
54
+
55
+ ## 3. Change Log
56
+
57
+ | Version | Date | Change | Trigger |
58
+ |---|---|---|---|
59
+ | 0.1.0 | [date] | Initial version | Companion to the five sibling `*-contract-generation-rules.md` files |
@@ -0,0 +1,121 @@
1
+ ---
2
+ document: Unit of Work Decomposition Rules
3
+ project: "{{PROJECT_NAME}}"
4
+ version: 0.2.0
5
+ owner: "[Process Facilitator name]"
6
+ last_updated: "[YYYY-MM-DD]"
7
+ status: draft
8
+ ---
9
+
10
+ # Unit of Work Decomposition Rules
11
+
12
+ **What this file is:** the rules the AI agent follows when proposing a Unit of Work
13
+ breakdown at Mob Elaboration Phase 2 (Strawman Review) — how to cut one Intent into
14
+ Units, how to classify each Unit as a Story or a Bug, and the sizing signals that say a
15
+ strawman is cut wrong before the room spends time negotiating around a bad boundary.
16
+
17
+ **What this file is not:** not the ticket field shape (`ISSUE-TRACKER-TEMPLATE.md`
18
+ governs that), not the ceremony's choreography (the AI-Native Engineering Model's
19
+ § Mob Elaboration governs that), not the Intent template itself. This file governs
20
+ one specific judgment call: given an approved Intent, what its Units of Work are.
21
+
22
+ **Companion files:** [ISSUE-TRACKER-TEMPLATE.md](./ISSUE-TRACKER-TEMPLATE.md) is where a
23
+ Unit of Work, once decided here, becomes a ticket. [PROJECT-RULES.md](./PROJECT-RULES.md)
24
+ §7 rule 12 is the operating rule this file implements.
25
+
26
+ ---
27
+
28
+ ## 1. What a Unit of Work Is
29
+
30
+ The smallest slice of an Intent that can be:
31
+
32
+ - **designed** by one owning role, without needing another role's design to already
33
+ exist first (though it may *reference* another role's contract),
34
+ - **gated** independently at Fig. 2's Stage 5 (Per-Unit Design Approved) and Stage 8
35
+ (Merge Approval), without waiting on a sibling Unit's gate, and
36
+ - **implemented** by the AI agent in one sitting, without losing the earlier reasoning
37
+ in its own context (`PROJECT-RULES.md` §7 rule 8, scope discipline).
38
+
39
+ A Unit of Work is never split further inside the ticket tracker by default
40
+ (`ISSUE-TRACKER-TEMPLATE.md` §2) — the Unit boundary *is* the atomic boundary. If a
41
+ "Unit" doesn't fit in one sitting, it was cut wrong; fix the cut, don't add sub-tasks
42
+ around it.
43
+
44
+ ## 2. Acceptance Criteria — every Unit states its own
45
+
46
+ A Unit of Work carries its own Acceptance Criteria, stated once in its design doc
47
+ (`unit-XXX-design.md`, Fig. 2 Stage 4) — narrowed from the Intent's own Success Criteria
48
+ (`intent.md`) down to just this Unit's slice. Not a restatement of the whole Intent's
49
+ criteria on every Unit; each Unit states only the part of "done" that's actually its own
50
+ to satisfy.
51
+
52
+ **The traceability rule this exists to enforce:** the Quality Architecture Contract's
53
+ Required Test Coverage table (`quality-architecture-contract-generation-rules.md` §2) is
54
+ generated *from* this list, not surfaced independently and hoped to line up. Every
55
+ stated Acceptance Criterion gets at least one Happy Path, Negative Path, or Edge Case
56
+ test row that verifies it; every test row traces back to a criterion it verifies, or is
57
+ marked explicitly supplementary rather than left looking like undocumented coverage. A
58
+ criterion with no covering test row is a Known Gap (`PROJECT-RULES.md` §6) the same way
59
+ an untested edge case already is — not silently assumed to be "probably fine."
60
+
61
+ Without a named source, a Unit's tests and its actual "done" bar are two independently
62
+ populated lists that happen to usually agree — right up until they don't. This is the
63
+ rule that closes that gap. See the worked example: `unit-004-02-backend-design.md`'s
64
+ four Acceptance Criteria are what `quality-architecture-contract.md`'s test table
65
+ traces to, row by row — including the one row that traces to nothing, which is exactly
66
+ how that Unit's Known Gap got caught instead of missed.
67
+
68
+ ## 3. Story or Bug — the classification rule
69
+
70
+ Every Unit of Work is exactly one of these two ticket types. Classify per Unit, not per
71
+ Intent — one Intent can produce a mix of both.
72
+
73
+ | Classify as | When | Example |
74
+ |---|---|---|
75
+ | **Story** | The Unit adds or changes a capability — net-new or intentionally different behavior | The branch-override selector itself (`UNIT-004-01`) |
76
+ | **Bug** | The Unit brings existing, already-shipped behavior back in line with a spec, contract, or FR it currently violates | A previously merged Unit's `{user}` derivation collides on two usernames in production |
77
+
78
+ **Boundary case:** a defect found *during* Construction of a Story, before that Story's
79
+ own Merge Approval, is fixed inside that same Unit — it does not spin out as a separate
80
+ Bug. Only a defect discovered *after* a Unit has already merged becomes its own Bug-type
81
+ Unit — under a fast, often single-Unit Intent of its own, or folded into a Known Gap per
82
+ `PROJECT-RULES.md` §6 if it isn't urgent enough to justify a full Mob Elaboration pass by
83
+ itself.
84
+
85
+ ## 4. Decomposition Heuristics
86
+
87
+ Applied by the AI agent when proposing the Phase 2 strawman, and by the room when
88
+ critiquing it:
89
+
90
+ - **One primary owning role per Unit.** If a Unit's design would need two Architects to
91
+ co-author it, it's two Units connected by a contract, not one Unit that spans both.
92
+ This is what turns Fig. 2 Stage 4 into "×N roles in parallel" instead of one
93
+ tangled design.
94
+ - **A shared dependency is a contract, not a split.** When two Units both need the same
95
+ answer to something (the worked example's `{user}` derivation rule), that answer is
96
+ negotiated once, in a contract, and referenced by both — never independently
97
+ re-derived, and never used as a reason to merge the two Units into one.
98
+ - **Size to one sitting.** If a Unit's own design doc is trending toward the size of
99
+ several of the worked examples combined, that's a smell the Unit is actually two.
100
+ - **Don't split to satisfy an org chart.** A Unit boundary is justified by an
101
+ independent design-and-gate need, never by "everyone should have something to own."
102
+ Splitting a naturally single-role, single-behavior change into two Units just to give
103
+ a second role a ticket produces busywork, not independence.
104
+ - **Watch the Unit count as a signal, not a rule.** One Unit for an Intent that went
105
+ through full Joint Elaboration is a sign the Intent probably didn't need the
106
+ cross-role machinery at all. More than roughly six to eight Units is a sign the
107
+ "Intent" was actually several Intents bundled together and should have been split
108
+ before Elaboration, not after.
109
+
110
+ ## 5. Numbering
111
+
112
+ `UNIT-<INTENT-NUMBER>-<sequence>`, zero-padded two digits — `UNIT-004-01`,
113
+ `UNIT-004-02`, matching the worked example in `docs/templates/samples/`. Sequence order
114
+ follows the order Units are listed in `unit-breakdown.md`, not build or gate order.
115
+
116
+ ## 6. Change Log
117
+
118
+ | Version | Date | Change | Trigger |
119
+ |---|---|---|---|
120
+ | 0.1.0 | [date] | Initial version | Clarifying how Units of Work get decomposed, classified (Story/Bug), and sized, separate from how they're ticketed |
121
+ | 0.2.0 | [date] | Added §2: every Unit states its own Acceptance Criteria, and the Quality Architecture Contract's test coverage table must trace to them, not be surfaced independently | Should a Unit's acceptance criteria be the same thing its unit tests are based on? |
@@ -0,0 +1,34 @@
1
+ ---
2
+ name: backend
3
+ description: Drafts the Backend Architecture Contract for an Intent, per backend-architecture-contract-generation-rules.md. Use when asked to run the Backend Skill or draft a Backend contract during Mob Elaboration.
4
+ invoked_by: Mob Elaboration (Ceremony 1), Phases 2–5
5
+ output: file — nvaid/intents/<INTENT-ID>/contracts/backend-architecture-contract.md
6
+ ---
7
+
8
+ # Backend Skill
9
+
10
+ Drafts the Backend Architecture Contract for an Intent, per
11
+ `{{AIDLC_ROOT}}/backend-architecture-contract-generation-rules.md` — the shapes every
12
+ consuming role (most often Frontend) reproduces verbatim rather than re-deriving.
13
+
14
+ ## Steps
15
+
16
+ 1. Confirm this Intent has at least one Unit touching the backend — an API/service layer,
17
+ an async worker, a data schema, or any server-side component — if none do, this
18
+ contract is not produced; state that plainly rather than leaving the file absent
19
+ with no explanation.
20
+ 2. Write the full API Contract Exposed for any new or changed endpoint — request and
21
+ response shape, including error cases (4xx/5xx), not just the happy path.
22
+ 3. Define every Shared Derivation Rule (a naming rule, an ID derivation) exactly once
23
+ here; never let a consuming role re-derive it independently.
24
+ 4. State Data Model Touches — which tables/columns are written, and whether a migration
25
+ is needed.
26
+ 5. List components touched (Design-Code Dictionary impact).
27
+ 6. State what this contract deliberately excludes — anything the room discussed and
28
+ explicitly deferred, named rather than silently dropped.
29
+ 7. Write `nvaid/intents/<INTENT-ID>/contracts/backend-architecture-contract.md`.
30
+
31
+ ## Boundaries
32
+
33
+ - A draft, not a verdict — flag it awaiting the Backend Solutions Architect's Sign-Off;
34
+ never present it as final.
@@ -0,0 +1,26 @@
1
+ ---
2
+ name: customer-experience
3
+ description: Drafts the Customer Experience Contract for an Intent, per customer-experience-contract-generation-rules.md. Use when asked to run the Customer Experience Skill or draft a Customer Experience contract during Mob Elaboration.
4
+ invoked_by: Mob Elaboration (Ceremony 1), Phases 2–5
5
+ output: file — intents/<INTENT-ID>/contracts/customer-experience-contract.md
6
+ ---
7
+
8
+ # Customer Experience Skill
9
+
10
+ Drafts the Customer Experience Contract for an Intent, per
11
+ `docs/templates/customer-experience-contract-generation-rules.md` — reconciling what the
12
+ room actually committed to against what `intent.md` originally asked for.
13
+
14
+ ## Steps
15
+
16
+ 1. Name explicitly where the final, technically-grounded shape narrowed, resolved, or
17
+ held unchanged against the original Intent — never silently absorbed.
18
+ 2. Write the Final Acceptance Criteria: the Intent's Success Criteria, incorporating
19
+ what the other contracts actually committed to, not a verbatim restatement.
20
+ 3. Tie "done" to a concrete validation scenario, never just "the code merged."
21
+ 4. Write `intents/<INTENT-ID>/contracts/customer-experience-contract.md`.
22
+
23
+ ## Boundaries
24
+
25
+ - A draft, not a verdict — flag it awaiting the Customer Experience Architect's
26
+ Sign-Off; never present it as final.
@@ -0,0 +1,27 @@
1
+ ---
2
+ name: daily-construction-update
3
+ description: Generates the daily three-question Construction digest (Completed / In Progress / Impediments) and publishes it to Wiki.js. Use when asked to run the Daily Construction Update Skill or produce today's construction update.
4
+ invoked_by: Mob Construction (Ceremony 2) — background, no meeting
5
+ output: link — a Wiki.js page, updated in place
6
+ ---
7
+
8
+ # Daily Construction Update Skill
9
+
10
+ Replaces the Daily Standup with a generated report about Construction's ongoing work.
11
+ The work itself keeps no fixed cadence — that doesn't change. What runs daily is the
12
+ report, not the work.
13
+
14
+ ## Steps
15
+
16
+ 1. Query every in-flight Unit's ticket and gate status.
17
+ 2. Compose the three-question digest, translated from the standup's own questions:
18
+ **Completed** (Units Merged, Intents that became Shippable since the last update),
19
+ **In progress** (current WIP — Design, Building, Gates), **Impediments** (stalled
20
+ Units, repeated gate failures, anything flagged as a Known Gap).
21
+ 3. Publish to the team's Wiki.js page, updated in place — never a chat message that
22
+ scrolls out of reach.
23
+
24
+ ## Boundaries
25
+
26
+ - Never block or gate a Unit's progress — only report state, the same way a daily sales
27
+ report doesn't stop the sales.
@@ -0,0 +1,30 @@
1
+ ---
2
+ name: frontend
3
+ description: Drafts the Frontend Architecture Contract for an Intent, per frontend-architecture-contract-generation-rules.md. Use when asked to run the Frontend Skill or draft a Frontend contract during Mob Elaboration.
4
+ invoked_by: Mob Elaboration (Ceremony 1), Phases 2–5
5
+ output: file — intents/<INTENT-ID>/contracts/frontend-architecture-contract.md
6
+ ---
7
+
8
+ # Frontend Skill
9
+
10
+ Drafts the Frontend Architecture Contract for an Intent, per
11
+ `docs/templates/frontend-architecture-contract-generation-rules.md` — consuming the
12
+ Backend contract's shapes verbatim rather than reinterpreting them.
13
+
14
+ ## Steps
15
+
16
+ 1. Name which Backend contract this one consumes, and confirm no field is locally
17
+ reinterpreted or renamed.
18
+ 2. Write the concrete UI flow, tied to specific screens or components, not a general
19
+ feature description.
20
+ 3. Point to the Backend contract's version of any shared derivation instead of
21
+ re-deriving it independently.
22
+ 4. State Identity/Access implications explicitly, even when "none for this Intent" —
23
+ never left implicit.
24
+ 5. List components touched (Design-Code Dictionary impact).
25
+ 6. Write `intents/<INTENT-ID>/contracts/frontend-architecture-contract.md`.
26
+
27
+ ## Boundaries
28
+
29
+ - A draft, not a verdict — flag it awaiting the Frontend Architect's Sign-Off; never
30
+ present it as final.
@@ -0,0 +1,142 @@
1
+ ---
2
+ name: github
3
+ description: Branches (feature/bugfix/hotfix/intent/chore, mapped to ticket or Intent IDs, or a slug for repo tooling), commits, opens pull requests, checks CI, self-reviews before requesting human review, iterates on review comments, and hands off to manual merge approval, following this repo's master/develop Git Flow. Use when asked to run the GitHub Skill, start work on a ticket or an Intent, push a Unit's work, do repo tooling/config work, open or update a pull request, address review comments, or check CI status.
4
+ invoked_by: Mob Construction (Ceremony 2), and Mob Elaboration (Ceremony 1) for its own intent/ branches
5
+ output: link — a GitHub pull request
6
+ version: 5.0
7
+ ---
8
+
9
+ # GitHub Skill
10
+
11
+ The procedure Mob Construction invokes to touch the repository — the same steps, every
12
+ Unit, every time. Covers the full loop: branch → commit → PR → self-review → human
13
+ review → iterate → manual merge. This Skill never merges anything itself.
14
+
15
+ ## Branch model (Git Flow)
16
+
17
+ - **`master`** — the default, production branch. Nothing commits here directly; it only
18
+ moves forward via an approved release merge from `develop`, or a hotfix.
19
+ - **`develop`** — the integration branch. Every feature and bugfix branch is cut from
20
+ here and merges back here.
21
+ - **`feature/<story-id>`** — new capability, cut from `develop`. `<story-id>` is the
22
+ GitHub Project story ID this Unit's ticket carries — e.g. `feature/142`. Add a short
23
+ slug if the ID alone reads as opaque in a long branch list: `feature/142-branch-override`.
24
+ - **`bugfix/<bug-id>`** — fixes a Bug-classified ticket found before release, cut from
25
+ `develop`, same ID convention as `feature/`.
26
+ - **`hotfix/<slug>`** — an emergency fix to what's already in production, cut from
27
+ `master` directly (the one exception to "always branch from develop"), merged back
28
+ into **both** `master` and `develop` so the fix isn't lost on the next release. No
29
+ Unit exists yet when this starts — run the Unit Breakdown Skill retroactively to log
30
+ one once the fix is in.
31
+ - **`intent/<intent-id>-<slug>`** — Mob Elaboration's own output, cut from `develop`:
32
+ `intent.md` itself, `unit-breakdown.md`, and the per-role `contracts/` files. Not a
33
+ Construction branch type — nothing here is code, so treating it as `feature/` would
34
+ misdescribe what actually changed and would demand a Story ID that doesn't exist yet
35
+ (a Unit of Work isn't decided until Elaboration produces `unit-breakdown.md` in the
36
+ first place). Review on this branch's PR is the CX Architect (or relevant Architect)
37
+ reading the artifact for content, not CI verifying code — the gates still run, but
38
+ pass on a markdown-only diff as a no-op, not as a meaningful check of anything.
39
+ Example: `intent/001-login-navigation-shell`.
40
+ - **`chore/<slug>`** — repo tooling, config, or meta work with no application code and
41
+ no Unit of Work behind it: a new Skill, a CI/CD workflow change, a convention update
42
+ (this branch type's own addition was one). Cut from `develop`, same as `feature`/
43
+ `bugfix`. This was already the de facto convention across every tooling PR in this
44
+ repo before being written down here — `chore/ci-setup`, `chore/verify-bot-identity`,
45
+ `chore/manual-deploy-trigger`, `chore/pr-review-skill`, `chore/pr-title-convention`,
46
+ `chore/reconcile-spec-planning`, and others all predate this entry. This documents
47
+ existing practice, not a new rule nobody's followed yet.
48
+
49
+ ## Steps
50
+
51
+ ### 1. Branch
52
+
53
+ Cut the branch per the model above, named by type and ticket ID (or Intent ID, for
54
+ `intent/`) so what's happening is visible in the branch list itself. Never commit
55
+ directly to `master` or `develop`.
56
+
57
+ ### 2. Commit
58
+
59
+ One commit per meaningful step, not one giant diff, using Conventional Commits scoped
60
+ to the Unit:
61
+
62
+ ```
63
+ <type>(<unit-id>): <what changed, imperative mood>
64
+ ```
65
+
66
+ `<type>` is `feat`, `fix`, `refactor`, `test`, or `chore`. Example:
67
+ `feat(unit-004-02): add branch-override endpoint with slot-limit check`.
68
+
69
+ On an `intent/` branch there's no Unit ID yet to scope to — use `docs: draft
70
+ INTENT-XXX — <short title>` instead (no parenthesized scope). On a `chore/` branch
71
+ there's no Unit ID either, since there's no Unit of Work behind tooling/config changes —
72
+ use a plain `chore: <what changed, imperative mood>`, no parenthesized scope.
73
+
74
+ ### 3. Open the pull request
75
+
76
+ Target `develop` (or `master` for a `hotfix/`). The PR body links the Unit's design doc
77
+ and its Quality Architecture Contract, and lists which Acceptance Criteria this PR
78
+ closes. Request the owning Architect (the human) as reviewer explicitly — never leave
79
+ the reviewer field empty.
80
+
81
+ **PR title format** — bracket tags, not a Conventional Commit prefix. Commits keep the
82
+ `<type>(<unit-id>):` style from step 2; the PR *title* uses this readable form instead:
83
+
84
+ ```
85
+ [TYPE][TARGET][TICKET] <plain readable summary>
86
+ ```
87
+
88
+ - **`[TYPE]`** — the work type, mapped from the commit type:
89
+ `feat → [FEATURE]`, `fix → [FIX]`, `chore → [CHORE]`, `refactor → [REFACTOR]`,
90
+ `test → [TEST]`, `docs → [DOCS]`.
91
+ - **`[TARGET]`** — the base branch this PR merges into:
92
+ `develop → [DEV]`, UAT branch → `[UAT]`, `master → [PROD]`.
93
+ - **`[TICKET]`** — the ticket ID this Unit carries: the `UNIT-XXX-YY` Story/Bug
94
+ (e.g. `[UNIT-004-02]`), or the `INTENT-XXX` Epic when the PR spans the whole Intent.
95
+ These are the IDs from `{{AIDLC_ROOT}}/ISSUE-TRACKER-TEMPLATE.md`, mirrored into the GitHub
96
+ Project. **Omit this tag entirely** when the change has no ticket (e.g. repo tooling or
97
+ config) — never write an empty `[]`.
98
+ - **`<summary>`** — a plain, human-readable sentence under ~70 chars. No `type:` prefix.
99
+
100
+ Examples:
101
+ - `[FEATURE][DEV][UNIT-004-01] Add branch-override selector to the environment form`
102
+ - `[FIX][PROD][UNIT-004-02] Correct username derivation collision`
103
+ - `[CHORE][DEV] Replicate Claude skills to Kiro` *(no ticket → no third tag)*
104
+
105
+ ### 4. Self-review before asking for human time
106
+
107
+ Before flagging for human review, re-read the diff once against the Unit's own
108
+ Acceptance Criteria and the Quality Architecture Contract's Required Test Coverage
109
+ table. Catch what's catchable here — a missing negative-path test, an unhandled error
110
+ case — so the human's review time goes to judgment calls, not things this Skill could
111
+ have caught itself.
112
+
113
+ ### 5. Poll CI, self-correct on failure
114
+
115
+ On a Guardrail Gate failure, self-correct and push again. Never ask for review while a
116
+ gate is red.
117
+
118
+ ### 6. Iterate on review comments
119
+
120
+ Once the human leaves review comments (`gh pr view <n> --comments` or the GitHub MCP
121
+ server's structured comment tools, if configured):
122
+
123
+ 1. Read every open thread before changing anything — don't react comment-by-comment in
124
+ isolation when they interact.
125
+ 2. Address each with a targeted commit, not a rewrite of the whole diff.
126
+ 3. Reply to each thread stating what changed, then re-request review. Never mark a
127
+ thread resolved that this Skill left open-ended or partially addressed.
128
+
129
+ ### 7. Hand off to Merge Approval
130
+
131
+ Once review is approved and every gate is green, flag the PR ready. Stop there. For a
132
+ `hotfix/`, note explicitly in the PR that a second merge into `develop` is still needed
133
+ after `master` receives this one — never assume the human will remember to ask for it.
134
+
135
+ ## Boundaries
136
+
137
+ - Never merge the pull request, and never approve its own PR — Merge Approval is a
138
+ human gate this Skill can reach but not cross. (Repo branch protection enforces this
139
+ independently of this instruction.)
140
+ - Never commit directly to `master` or `develop` — always through a typed branch, even
141
+ for a one-line fix.
142
+ - Never resolve a review thread on the human's behalf.