@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.
- package/README.md +137 -2
- package/dist/cli.js +476 -0
- package/package.json +46 -4
- package/templates/commands/apply.md +28 -0
- package/templates/commands/breakdown.md +27 -0
- package/templates/commands/contracts.md +35 -0
- package/templates/commands/intent.md +32 -0
- package/templates/nvaid/DESIGN-CODE-DICTIONARY.md +90 -0
- package/templates/nvaid/PROJECT-RULES.md +93 -0
- package/templates/nvaid/config.yml +74 -0
- package/templates/nvaid/intents/.gitkeep +0 -0
- package/templates/rules/ISSUE-TRACKER-TEMPLATE.md +221 -0
- package/templates/rules/backend-architecture-contract-generation-rules.md +56 -0
- package/templates/rules/customer-experience-contract-generation-rules.md +51 -0
- package/templates/rules/frontend-architecture-contract-generation-rules.md +56 -0
- package/templates/rules/quality-architecture-contract-generation-rules.md +86 -0
- package/templates/rules/solutions-architecture-contract-generation-rules.md +59 -0
- package/templates/rules/unit-breakdown-rules.md +121 -0
- package/templates/skills/backend/SKILL.md +34 -0
- package/templates/skills/customer-experience/SKILL.md +26 -0
- package/templates/skills/daily-construction-update/SKILL.md +27 -0
- package/templates/skills/frontend/SKILL.md +30 -0
- package/templates/skills/github/SKILL.md +142 -0
- package/templates/skills/pr-review/SKILL.md +119 -0
- package/templates/skills/project-ticketing/SKILL.md +26 -0
- package/templates/skills/quality/SKILL.md +31 -0
- package/templates/skills/r3-analytics/SKILL.md +26 -0
- package/templates/skills/release-plan/SKILL.md +27 -0
- package/templates/skills/solutions/SKILL.md +29 -0
- 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.
|