@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,119 @@
1
+ ---
2
+ name: pr-review
3
+ description: Evaluates an open pull request against this repo's established conventions (branch type, base branch, commit/PR-title format, CI gate status, path and file-shape conventions, PROJECT-RULES.md) and recommends one of three outcomes -- approve and merge, close and delete, or request changes -- with reasoning for each check. Never merges, approves, closes, deletes a branch, or submits a review itself; the human takes the actual action. Use when asked to review a pull request, evaluate a PR, or decide whether to approve, close, or request changes on one.
4
+ invoked_by: On demand, by request -- "review PR #N" or "run the PR Review Skill on PR #N"
5
+ output: a recommendation report to the conversation, plus a suggested review-comment draft. No file written, no GitHub action taken.
6
+ version: 1.0
7
+ ---
8
+
9
+ # PR Review Skill
10
+
11
+ Reads a pull request against this repo's *current* conventions and recommends one of
12
+ three outcomes. The rules it checks against are never hardcoded here — they live in
13
+ `.claude/skills/github/SKILL.md` and `nvaid/PROJECT-RULES.md`, read fresh every
14
+ time, so this Skill can't drift out of sync with the conventions as they evolve.
15
+
16
+ **This Skill never takes the action it recommends.** It doesn't call `gh pr merge`,
17
+ `gh pr close`, `gh pr review --approve`, `gh pr review --request-changes`, or delete a
18
+ branch. It reports a recommendation and reasoning; a human reads it and acts.
19
+
20
+ ## Steps
21
+
22
+ ### 1. Gather the facts
23
+
24
+ ```
25
+ gh pr view $ARGUMENTS --json title,body,headRefName,baseRefName,author,state,mergeable,reviewDecision,statusCheckRollup,files
26
+ gh pr diff $ARGUMENTS
27
+ ```
28
+
29
+ Also re-read `.claude/skills/github/SKILL.md` (this repo's copy) and
30
+ `nvaid/PROJECT-RULES.md` before judging anything — the checks below are applied
31
+ against whatever those files currently say, not a memorized version of them.
32
+
33
+ ### 2. Check branch type against actual content
34
+
35
+ - Does `headRefName` match one of the branch types `github/SKILL.md` currently defines
36
+ (`feature/<story-id>`, `bugfix/<bug-id>`, `hotfix/<slug>`, `intent/<intent-id>-slug`,
37
+ or whatever it's since been extended to)?
38
+ - Does the branch **type** actually match what changed? Code changes on an `intent/`
39
+ branch, or a pure-documentation Elaboration artifact on a `feature/` branch, is a
40
+ category error. A category error here means the PR is built on the wrong foundation
41
+ and can't be fixed by pushing more commits to the same branch.
42
+
43
+ ### 3. Check base branch
44
+
45
+ `develop` in almost every case; `master` only for a declared `hotfix/`. Anything else
46
+ is wrong regardless of how good the content is.
47
+
48
+ ### 4. Check CI status
49
+
50
+ Every entry in `statusCheckRollup` must be a pass. Any `pending` or `failing` gate means
51
+ this isn't ready for a merge/close/request-changes decision yet at all — say so plainly
52
+ rather than forcing one of the three outcomes prematurely.
53
+
54
+ ### 5. Check commit and PR-title format
55
+
56
+ Against whatever `github/SKILL.md` currently specifies (Conventional Commits for commit
57
+ messages; the PR title format, once one is defined). Stray artifacts from an unrelated
58
+ project or template — a ticket ID, a company name, placeholder text that was clearly
59
+ never adapted to this project — are a flag here even if the format is otherwise followed
60
+ correctly.
61
+
62
+ ### 6. Check path and file-shape conventions
63
+
64
+ Compare every changed/added file's path against this repo's established shape
65
+ (`nvaid/intents/INTENT-XXX-slug/`, `.claude/skills/<name>/SKILL.md`, `deploy/`,
66
+ etc. — read from `PROJECT-RULES.md` and the existing repo tree, not assumed). A new
67
+ top-level convention appearing alongside an existing one for the same concept (two
68
+ different intent-tracking shapes, two different daily-report mechanisms) is a
69
+ duplication flag, not something to wave through because each one is internally
70
+ consistent.
71
+
72
+ ### 7. Check for semantic duplication
73
+
74
+ Does this PR introduce a Skill, file, or concept that already exists under a different
75
+ name? Read the existing `.claude/skills/*/SKILL.md` descriptions and compare — a new
76
+ Skill whose description overlaps meaningfully with an existing one is worth flagging
77
+ even if no path literally collides.
78
+
79
+ ### 8. Check the PR description itself
80
+
81
+ Per `github/SKILL.md` Step 3: does the body link the relevant design doc / contract and
82
+ name the Acceptance Criteria it closes, where applicable? A PR with no explanation of
83
+ what changed or why is weaker evidence for a decision, not a blocker on its own.
84
+
85
+ ### 9. Synthesize one of three recommendations
86
+
87
+ - **Approve and merge** — every check above passes; nothing outstanding.
88
+ - **Close and delete** — a foundational defect (wrong branch type/category error, or
89
+ fully superseded by other already-merged work) that pushing more commits can't fix.
90
+ The right move is recutting on a corrected branch, not iterating in place.
91
+ - **Request changes** — the branch and approach are sound, but something specific and
92
+ fixable is wrong (a stray example, a missing description detail, a failing test to
93
+ correct). Iterating on the *same* branch is the right move here, unlike Close.
94
+
95
+ Output, in this order:
96
+
97
+ 1. **Recommendation** — one of the three, in bold.
98
+ 2. **Brief justification** — one sentence, the single core reason driving the verdict.
99
+ Not a summary of every check — the one fact that would change the verdict if it
100
+ weren't true.
101
+ 3. **Reasoning per check** (pass / fail / flagged) — the full breakdown backing up the
102
+ one-line justification, so the human can see exactly what it's based on, not just
103
+ take the verdict on faith.
104
+
105
+ ### 10. Draft a suggested review comment
106
+
107
+ Write the comment the human could paste in as-is, or edit — summarizing the finding(s)
108
+ driving the recommendation. Never post it — output it in the conversation only.
109
+
110
+ ## Boundaries
111
+
112
+ - Never run `gh pr merge`, `gh pr close`, `gh pr review`, or delete a branch. Report
113
+ and recommend; the human's own review submission and merge/close click is the action.
114
+ - Never treat "CI is green" alone as sufficient for Approve — CI verifies code
115
+ correctness, not convention compliance, path correctness, or duplication, which are
116
+ exactly what this Skill exists to catch that CI can't.
117
+ - Never soften a Close-and-delete finding into a Request-changes one to avoid
118
+ recommending a branch be redone — a category error doesn't get smaller by wishing it
119
+ were a smaller fix.
@@ -0,0 +1,26 @@
1
+ ---
2
+ name: project-ticketing
3
+ description: Creates and updates Epics, Stories, and Bugs in Jira or GitHub Projects per ISSUE-TRACKER-TEMPLATE.md. Use when asked to run the Project Ticketing Skill, create tickets from a Unit Breakdown, or sync ticket status with Construction progress.
4
+ invoked_by: Mob Elaboration (Ceremony 1), Mob Construction (Ceremony 2)
5
+ output: link — a Jira or GitHub Projects ticket
6
+ ---
7
+
8
+ # Project Ticketing Skill
9
+
10
+ Creates and updates Epics, Stories, and Bugs per `docs/templates/ISSUE-TRACKER-TEMPLATE.md`
11
+ — so ticket shape never drifts from one Intent to the next.
12
+
13
+ ## Steps
14
+
15
+ 1. On Unit Breakdown (Mob Elaboration Phase 5), create one Story or Bug per Unit,
16
+ classified per `docs/templates/unit-breakdown-rules.md` §3.
17
+ 2. Attach each ticket's Acceptance Criteria verbatim from the Unit's own design doc —
18
+ never re-worded independently.
19
+ 3. As Mob Construction moves a Unit through Design → Building → Gates → Merged, update
20
+ ticket status to match. The ticket reflects the repo, not the other way round.
21
+ 4. Once every Unit under an Epic reaches Merged, roll the Epic to "Intent Complete."
22
+
23
+ ## Boundaries
24
+
25
+ - Never assign a Story or Epic to a Release Checkpoint — that decision belongs to the
26
+ Release Plan Skill, made at Release Planning Day, not pre-empted here.
@@ -0,0 +1,31 @@
1
+ ---
2
+ name: quality
3
+ description: Drafts the Quality Architecture Contract for an Intent, per quality-architecture-contract-generation-rules.md. Use when asked to run the Quality Skill or draft a Quality contract during Mob Elaboration.
4
+ invoked_by: Mob Elaboration (Ceremony 1), Phases 2–5
5
+ output: file — intents/<INTENT-ID>/contracts/quality-architecture-contract.md
6
+ ---
7
+
8
+ # Quality Skill
9
+
10
+ Drafts the Quality Architecture Contract for an Intent, per
11
+ `docs/templates/quality-architecture-contract-generation-rules.md` — the Required Test
12
+ Coverage table the Unit Test and Integration Test gates run against.
13
+
14
+ ## Steps
15
+
16
+ 1. Build the Required Test Coverage table — one row per scenario, classified Happy
17
+ Path / Negative Path / Edge Case.
18
+ 2. Trace every row to one of the owning Unit's stated Acceptance Criteria, and confirm
19
+ every Acceptance Criterion has at least one covering row — both directions checked.
20
+ 3. State which existing SRS NFRs this Intent's Units are held to, beyond the standing
21
+ baseline; say "none beyond baseline" explicitly when true.
22
+ 4. Log any Known Gap the room consciously accepted, flagged rather than dropped.
23
+ 5. Write `intents/<INTENT-ID>/contracts/quality-architecture-contract.md`.
24
+
25
+ ## Boundaries
26
+
27
+ - Never define Solution-Specific gates (Build, Code Coverage, Code Quality,
28
+ Reusability, Regression Test, SAST) — those are fixed in `docs/templates/PROJECT-RULES.md`
29
+ §5.2, not something any Intent's contract opts into or out of.
30
+ - A draft, not a verdict — flag it awaiting the Quality Architect's Sign-Off; never
31
+ present it as final.
@@ -0,0 +1,26 @@
1
+ ---
2
+ name: r3-analytics
3
+ description: Gathers checkpoint-to-checkpoint performance indicators (lead time, gate pass rate, escaped defects, Known Gaps) for R3's Retrospective step. Use when asked to run the R3 Analytics Skill or prepare Retrospective data after a Release Checkpoint ships.
4
+ invoked_by: R3 (Ceremony 4), triggered by a Release Checkpoint shipping
5
+ output: file — process/retro-<checkpoint>.md
6
+ ---
7
+
8
+ # R3 Analytics Skill
9
+
10
+ Gathers the checkpoint-to-checkpoint performance indicators the Retrospective step
11
+ looks at, so "what does the data actually say" has an answer ready the moment R3 starts.
12
+
13
+ ## Steps
14
+
15
+ 1. On a Release Checkpoint shipping, pull every Intent it bundled and their Units.
16
+ 2. Compute lead time (Intent opened → Shippable), Guardrail Gate pass rate, and any
17
+ escaped defects logged against this checkpoint's Units.
18
+ 3. Roll up every Known Gap logged across this checkpoint's Quality Architecture
19
+ Contracts — a gap doesn't disappear just because the checkpoint shipped.
20
+ 4. Draft `process/retro-<checkpoint>.md` with the above, structured for the room to read
21
+ before proposing Regenerate edits.
22
+
23
+ ## Boundaries
24
+
25
+ - Report what happened; propose nothing. Which rule files actually change (Regenerate)
26
+ is the room's call, never this Skill's.
@@ -0,0 +1,27 @@
1
+ ---
2
+ name: release-plan
3
+ description: Drafts the Release Planning Day deployment plan — which Intents are Shippable, their cross-Intent dependencies, and each one's Customer Experience targets. Use when asked to run the Release Plan Skill or prepare for Release Planning Day.
4
+ invoked_by: Release Planning Day (Ceremony 3)
5
+ output: file — checkpoints/<checkpoint-name>/plan.md
6
+ ---
7
+
8
+ # Release Plan Skill
9
+
10
+ Drafts the Release Planning Day deployment plan for the room to review and approve —
11
+ never to finalize alone.
12
+
13
+ ## Steps
14
+
15
+ 1. Pull every Intent currently at "Intent Complete" (every Unit Merged) and propose
16
+ which ones ship together in this Release Checkpoint.
17
+ 2. Surface cross-Intent dependencies — an Intent that reads another's output, a shared
18
+ schema change.
19
+ 3. Flag contradictions between Intents built independently — conflicting API shapes,
20
+ overlapping ownership.
21
+ 4. Draft `checkpoints/<checkpoint-name>/plan.md`, including each Intent's Customer
22
+ Experience targets.
23
+
24
+ ## Boundaries
25
+
26
+ - Draft the plan; the room decides. Nothing in `plan.md` is final until Release Planning
27
+ Day signs off on it.
@@ -0,0 +1,29 @@
1
+ ---
2
+ name: solutions
3
+ description: Drafts the Solutions Architecture Contract for an Intent, per solutions-architecture-contract-generation-rules.md. Use when asked to run the Solutions Skill or draft a Solutions contract during Mob Elaboration.
4
+ invoked_by: Mob Elaboration (Ceremony 1), Phases 2–5
5
+ output: file — intents/<INTENT-ID>/contracts/solutions-architecture-contract.md
6
+ ---
7
+
8
+ # Solutions Skill
9
+
10
+ Drafts the Solutions Architecture Contract for an Intent, per
11
+ `docs/templates/solutions-architecture-contract-generation-rules.md` — the cross-role
12
+ boundary and consistency check every other contract this session has to fit inside.
13
+
14
+ ## Steps
15
+
16
+ 1. Assess whether this Intent introduces a new system container, crosses an SRS System
17
+ Container boundary, or needs a new ADR — state the answer even when it's "no" on
18
+ every count.
19
+ 2. State explicitly what this Intent is and isn't allowed to touch.
20
+ 3. Flag any unsupervised-action surface `docs/templates/PROJECT-RULES.md` §7 doesn't
21
+ already cover.
22
+ 4. Cross-check the other contracts drafted this session for contradictions — the
23
+ Consistency Gate, recorded in writing.
24
+ 5. Write `intents/<INTENT-ID>/contracts/solutions-architecture-contract.md`.
25
+
26
+ ## Boundaries
27
+
28
+ - A draft, not a verdict — flag it awaiting the Solutions Architect's Sign-Off; never
29
+ present it as final.
@@ -0,0 +1,31 @@
1
+ ---
2
+ name: unit-breakdown
3
+ description: Cuts an Intent into Units of Work, each with its own Acceptance Criteria, per unit-breakdown-rules.md. Use when asked to run the Unit Breakdown Skill, break down an Intent into Units, or produce a Unit Breakdown during Mob Elaboration Phase 5.
4
+ invoked_by: Mob Elaboration (Ceremony 1), Phase 5
5
+ output: file — intents/<INTENT-ID>/unit-breakdown.md
6
+ ---
7
+
8
+ # Unit Breakdown Skill
9
+
10
+ Cuts an Intent into Units of Work small enough to build and approve independently —
11
+ a first-cut proposal the room then critiques, not the decomposition of record.
12
+
13
+ ## Steps
14
+
15
+ 1. Read the Intent file (`intents/<INTENT-ID>/intent.md`) and its stated success
16
+ criteria.
17
+ 2. Propose a decomposition into Units, each with its own Acceptance Criteria narrowed
18
+ from the Intent's success criteria, per `docs/templates/unit-breakdown-rules.md` §2.
19
+ 3. Classify each Unit as a Story or Bug (§3), and size it per the file's decomposition
20
+ heuristics (§4).
21
+ 4. Number Units per §5.
22
+ 5. Write `intents/<INTENT-ID>/unit-breakdown.md` — the contract index every
23
+ Architecture Contract Skill downstream reads from.
24
+
25
+ ## Boundaries
26
+
27
+ - This is a proposal, not the decomposition of record. Mob Elaboration Phase 3
28
+ ("Mark it up alone") and Phase 4 ("Negotiate live") are where the room actually owns
29
+ the cut — flag this file as a draft awaiting that review, never as final.
30
+ - Read `docs/templates/unit-breakdown-rules.md` in full before drafting; don't rely on
31
+ this summary alone for the numbering and classification rules.