@novare-technologies/nvaid 0.0.0-stage → 0.2.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/LICENSE +21 -0
- package/README.md +137 -2
- package/dist/cli.js +483 -0
- package/package.json +49 -4
- package/templates/commands/apply.md +36 -0
- package/templates/commands/breakdown.md +35 -0
- package/templates/commands/contracts.md +43 -0
- package/templates/commands/install.md +63 -0
- package/templates/commands/intent.md +46 -0
- package/templates/nvaid/DESIGN-CODE-DICTIONARY.md +90 -0
- package/templates/nvaid/PROJECT-RULES.md +93 -0
- package/templates/nvaid/config.yml +87 -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,36 @@
|
|
|
1
|
+
---
|
|
2
|
+
command: nvaid:apply
|
|
3
|
+
summary: Generate per-repo unit design docs and open construction branches for an approved breakdown.
|
|
4
|
+
stage: "Fig. 2 Stage 4+ — Per-Role Authoring / Construction"
|
|
5
|
+
precondition: unit-breakdown approved (Decomposition-Approved gate green)
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# /nvaid:apply
|
|
9
|
+
|
|
10
|
+
## ⛔ Precondition: nvaid install must be complete
|
|
11
|
+
|
|
12
|
+
Read `nvaid/config.yml` and check the `install:` block. If `config`, `project_rules`, or
|
|
13
|
+
`design_code_dictionary` is not `true` (or the file is missing), **STOP** and tell the
|
|
14
|
+
user to run `/nvaid:install` first — name which flag(s) are false. Do not proceed until
|
|
15
|
+
all three are true.
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
Turn an **approved** unit-breakdown into construction-ready work: for each Unit, generate
|
|
19
|
+
its design doc in the Owning Repo named by the breakdown, and open the construction branch
|
|
20
|
+
per the `github` Skill.
|
|
21
|
+
|
|
22
|
+
## Precondition
|
|
23
|
+
|
|
24
|
+
Only run once the unit-breakdown is approved. If it's still awaiting the gate, stop.
|
|
25
|
+
|
|
26
|
+
## Steps
|
|
27
|
+
|
|
28
|
+
1. Read the approved `unit-breakdown.md` and its Units + Owning Repo tags.
|
|
29
|
+
2. For each Unit, in its Owning Repo:
|
|
30
|
+
- generate `nvaid/intents/<INTENT-ID>-<slug>/units/<UNIT-ID>-design.md` with the Unit's
|
|
31
|
+
own Acceptance Criteria, referencing the relevant contracts (`covers_units`).
|
|
32
|
+
- cut the construction branch (`feature/<story-id>-<slug>` or `bugfix/...`) per the
|
|
33
|
+
`github` Skill.
|
|
34
|
+
3. Create/update the GitHub Project items per `ISSUE-TRACKER-TEMPLATE.md` (Epic per Intent,
|
|
35
|
+
Story/Bug per Unit) — links, not pasted content.
|
|
36
|
+
4. Hand off to Construction. Do not implement code here.
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
---
|
|
2
|
+
command: nvaid:breakdown
|
|
3
|
+
summary: Cut an approved Intent into Units of Work — the Phase 5 final cut, each unit tagged with its Owning Repo.
|
|
4
|
+
stage: "Mob Elaboration — Phase 5"
|
|
5
|
+
precondition: Contracts drafted (/nvaid:contracts has run)
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# /nvaid:breakdown
|
|
9
|
+
|
|
10
|
+
## ⛔ Precondition: nvaid install must be complete
|
|
11
|
+
|
|
12
|
+
Read `nvaid/config.yml` and check the `install:` block. If `config`, `project_rules`, or
|
|
13
|
+
`design_code_dictionary` is not `true` (or the file is missing), **STOP** and tell the
|
|
14
|
+
user to run `/nvaid:install` first — name which flag(s) are false. Do not proceed until
|
|
15
|
+
all three are true.
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
Produce `unit-breakdown.md` — the **Phase 5 output**, the decomposition of record,
|
|
19
|
+
informed by the contracts from `/nvaid:contracts`. This runs **after** contracts, not
|
|
20
|
+
before (the `unit-breakdown` Skill is Phase 5; the contract Skills are Phases 2–5).
|
|
21
|
+
|
|
22
|
+
## Steps
|
|
23
|
+
|
|
24
|
+
1. Read `intent.md` and the drafted `contracts/`.
|
|
25
|
+
2. Run the `unit-breakdown` Skill per `{{AIDLC_ROOT}}/unit-breakdown-rules.md`: cut into
|
|
26
|
+
Units each with its own Acceptance Criteria, classify Story or Bug, size per the rules.
|
|
27
|
+
3. Tag each Unit with its **Owning Repo** (frontend | backend | platform) — this is what
|
|
28
|
+
assigns units across the family (proposal §7).
|
|
29
|
+
4. Reconcile each contract's `covers_units` against the final cut.
|
|
30
|
+
5. Write `nvaid/intents/<INTENT-ID>-<slug>/unit-breakdown.md`. Flag as a draft awaiting
|
|
31
|
+
room critique (Phases 3–4) and the Decomposition-Approved gate.
|
|
32
|
+
|
|
33
|
+
## Next
|
|
34
|
+
|
|
35
|
+
`/nvaid:apply` — generate the per-repo unit design docs and open construction branches.
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
---
|
|
2
|
+
command: nvaid:contracts
|
|
3
|
+
summary: Draft the per-role Architecture Contracts for an approved Intent (Phases 2–5).
|
|
4
|
+
stage: "Mob Elaboration — Phases 2–5"
|
|
5
|
+
precondition: Intent approved (Decomposition-Approved gate green)
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# /nvaid:contracts
|
|
9
|
+
|
|
10
|
+
## ⛔ Precondition: nvaid install must be complete
|
|
11
|
+
|
|
12
|
+
Read `nvaid/config.yml` and check the `install:` block. If `config`, `project_rules`, or
|
|
13
|
+
`design_code_dictionary` is not `true` (or the file is missing), **STOP** and tell the
|
|
14
|
+
user to run `/nvaid:install` first — name which flag(s) are false. Do not proceed until
|
|
15
|
+
all three are true.
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
Draft the Architecture Contracts for an **already-approved** Intent, running each role's
|
|
19
|
+
contract Skill. The contracts are negotiated across Elaboration Phases 2–5 and **precede**
|
|
20
|
+
the unit-breakdown (which is the Phase 5 output) — run `/nvaid:breakdown` after this.
|
|
21
|
+
|
|
22
|
+
## Precondition
|
|
23
|
+
|
|
24
|
+
Only run once the Intent is approved. If `intent.md` is still a draft awaiting the
|
|
25
|
+
stakeholder, stop and say so.
|
|
26
|
+
|
|
27
|
+
## Steps
|
|
28
|
+
|
|
29
|
+
1. Read the approved `intent.md`.
|
|
30
|
+
2. Run each required role Skill per its `*-architecture-contract-generation-rules.md`
|
|
31
|
+
under `{{AIDLC_ROOT}}`: solutions, the relevant tier contract(s) (frontend / backend),
|
|
32
|
+
quality, customer-experience. Pull a role in only if the Intent touches its domain;
|
|
33
|
+
state "not pulled in" explicitly for the rest.
|
|
34
|
+
3. Write each to `nvaid/intents/<INTENT-ID>-<slug>/contracts/`.
|
|
35
|
+
4. Each contract is a **draft awaiting its Architect's sign-off** — never present as final.
|
|
36
|
+
Read the architect roster from `nvaid/config.yml` (`architects.<role>`) and flag each
|
|
37
|
+
contract as "awaiting sign-off from <that named architect>". Never fill in a sign-off
|
|
38
|
+
on an architect's behalf (propose, don't dispose). If a role has no named architect in
|
|
39
|
+
config, state that its contract is not pulled in rather than inventing an owner.
|
|
40
|
+
|
|
41
|
+
## Next
|
|
42
|
+
|
|
43
|
+
`/nvaid:breakdown` — cut the approved Intent into Units, informed by these contracts.
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
---
|
|
2
|
+
command: nvaid:install
|
|
3
|
+
summary: Scan the project and fill in the three required nvaid documents (config.yml, PROJECT-RULES.md, DESIGN-CODE-DICTIONARY.md). Must run before /nvaid:intent.
|
|
4
|
+
stage: "nvaid onboarding — run once, first, before any workflow command"
|
|
5
|
+
blocks: [nvaid:intent, nvaid:contracts, nvaid:breakdown, nvaid:apply]
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# /nvaid:install
|
|
9
|
+
|
|
10
|
+
The **first** command to run after `nvaid init`. `init` only drops empty templates; this
|
|
11
|
+
skill makes nvaid actually usable by scanning the project and authoring the three required
|
|
12
|
+
documents. **Every other nvaid workflow command is blocked until this completes** — running
|
|
13
|
+
`/nvaid:intent` against unfilled templates would produce hollow, confidently-wrong output.
|
|
14
|
+
|
|
15
|
+
## Why this is a skill, not a CLI step
|
|
16
|
+
|
|
17
|
+
The CLI can detect facts (languages, frameworks from manifest files) but cannot author
|
|
18
|
+
*judgment*: a project's guardrails, its design patterns, what breaks if a given module
|
|
19
|
+
changes. That requires reading the actual code and reasoning about it — the agent's job,
|
|
20
|
+
not a file-scan's. This skill does that reading. A human reviews before it's marked done
|
|
21
|
+
(propose, don't dispose).
|
|
22
|
+
|
|
23
|
+
## Steps
|
|
24
|
+
|
|
25
|
+
1. **Scan the project.** Read manifest files (`package.json`, `pyproject.toml`, `go.mod`,
|
|
26
|
+
lockfiles), the directory structure, config, CI workflows, and a representative sample
|
|
27
|
+
of source to understand the stack, the architecture, and the conventions in use.
|
|
28
|
+
|
|
29
|
+
2. **Fill `nvaid/config.yml`** — replace every `<placeholder>`:
|
|
30
|
+
- `project_name`, `owning_repo` (frontend | backend | platform | other — infer from the
|
|
31
|
+
code, confirm with the user if ambiguous).
|
|
32
|
+
- `tech_stack` — fill from what you actually found in the manifests, not assumptions.
|
|
33
|
+
- `architects` — these are sign-off identities you cannot infer from code. **Ask the
|
|
34
|
+
user** for the names; leave a role blank only if the user confirms it doesn't apply.
|
|
35
|
+
- `context` — the short, always-on constraints worth repeating to every agent.
|
|
36
|
+
|
|
37
|
+
3. **Author `nvaid/PROJECT-RULES.md`** — replace the template skeleton with real content:
|
|
38
|
+
the approved stack and what's disallowed without an ADR, non-negotiable constraints,
|
|
39
|
+
data rules, coding standards, the quality gates CI actually runs, and known gaps.
|
|
40
|
+
Derive what you can from the code (e.g. the lint/test config that exists); for anything
|
|
41
|
+
that is a *decision* rather than a fact (what's allowed, what's off-limits), propose it
|
|
42
|
+
and flag it for the user to confirm — do not invent a guardrail the project hasn't made.
|
|
43
|
+
|
|
44
|
+
4. **Author `nvaid/DESIGN-CODE-DICTIONARY.md`** — the technical README for the code:
|
|
45
|
+
the design patterns and conventions in use (with real file examples), and the component
|
|
46
|
+
map (concept → where it lives → what it depends on → what breaks if changed). This is
|
|
47
|
+
narrative derived from reading the code; §1 references `config.yml`'s `tech_stack`
|
|
48
|
+
rather than repeating it. Be honest in the "not yet mapped" section about coverage.
|
|
49
|
+
|
|
50
|
+
5. **Human review.** Present all three for review. Per propose-don't-dispose, you draft;
|
|
51
|
+
a human confirms. Do not self-approve.
|
|
52
|
+
|
|
53
|
+
6. **Flip the gate.** Only after the user confirms each document is genuinely filled (not
|
|
54
|
+
placeholder text), set the matching flag in `config.yml`'s `install:` block to `true`:
|
|
55
|
+
`config`, `project_rules`, `design_code_dictionary`. When all three are true, the
|
|
56
|
+
workflow commands unblock.
|
|
57
|
+
|
|
58
|
+
## Boundaries
|
|
59
|
+
|
|
60
|
+
- Facts come from the code; **decisions and sign-off identities come from the user** — ask,
|
|
61
|
+
don't fabricate.
|
|
62
|
+
- Never set an `install:` flag to `true` on a document that still contains template
|
|
63
|
+
`<placeholder>` text or that the user hasn't confirmed.
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
---
|
|
2
|
+
command: nvaid:intent
|
|
3
|
+
summary: Draft an Intent (intent.md) — the business need and success criteria only, then STOP.
|
|
4
|
+
stage: "Fig. 2 Stage 1 — Intent captured, pre-Elaboration"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# /nvaid:intent
|
|
8
|
+
|
|
9
|
+
## ⛔ Precondition: nvaid install must be complete
|
|
10
|
+
|
|
11
|
+
Before doing anything, read `nvaid/config.yml` and check the `install:` block. If
|
|
12
|
+
`config`, `project_rules`, or `design_code_dictionary` is **not** `true` — or
|
|
13
|
+
`nvaid/config.yml` doesn't exist — **STOP** and tell the user:
|
|
14
|
+
|
|
15
|
+
> nvaid isn't fully installed in this project yet. Run `/nvaid:install` first — it scans
|
|
16
|
+
> the project and fills in config.yml, PROJECT-RULES.md, and DESIGN-CODE-DICTIONARY.md.
|
|
17
|
+
> Those documents are what this command relies on; drafting an Intent without them would
|
|
18
|
+
> produce hollow output.
|
|
19
|
+
|
|
20
|
+
Name which flag(s) are false. Do not proceed with any step below until all three are true.
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
Draft a new Intent from the user's description. Produce **only** `intent.md` — the
|
|
25
|
+
business need, who it's for, success criteria, and scope boundaries — then **stop**.
|
|
26
|
+
|
|
27
|
+
## Hard rule: generate the intent and nothing else
|
|
28
|
+
|
|
29
|
+
Do NOT generate contracts, a unit-breakdown, or any downstream artifact. The Intent must
|
|
30
|
+
be approved by the stakeholder (the Decomposition-Approved green light) before anything
|
|
31
|
+
downstream is generated. Stopping here is the whole point of the gated workflow, not a
|
|
32
|
+
limitation — propose, don't dispose.
|
|
33
|
+
|
|
34
|
+
## Steps
|
|
35
|
+
|
|
36
|
+
1. Read this repo's `nvaid/PROJECT-RULES.md` for the project's operating guardrails and
|
|
37
|
+
approved stack (guaranteed authored, since the install gate above has passed).
|
|
38
|
+
2. Write `nvaid/intents/<INTENT-ID>-<slug>/intent.md`: business need, who it's for,
|
|
39
|
+
Intent-level success criteria (observable outcomes, not implementation), scope
|
|
40
|
+
boundaries (name what's out of scope, don't silently drop it), and open questions for
|
|
41
|
+
the room. Do not decide the technical shape here.
|
|
42
|
+
3. Flag the file as a draft awaiting stakeholder approval. Stop.
|
|
43
|
+
|
|
44
|
+
## Next (do not run automatically)
|
|
45
|
+
|
|
46
|
+
After the stakeholder approves: `/nvaid:contracts`, then `/nvaid:breakdown`.
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
---
|
|
2
|
+
document: Design-Code Dictionary
|
|
3
|
+
project: "{{PROJECT_NAME}}"
|
|
4
|
+
version: 0.1.0
|
|
5
|
+
owner: "<owner name>"
|
|
6
|
+
maintained_by: AI agent — updated as part of any unit of work that touches a mapped component
|
|
7
|
+
last_updated: "<YYYY-MM-DD>"
|
|
8
|
+
status: draft
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# {{PROJECT_NAME}} — Design-Code Dictionary
|
|
12
|
+
|
|
13
|
+
> **Template dropped by `nvaid init` — HAND-OWNED, fill this in.**
|
|
14
|
+
> `nvaid update` never overwrites this file. Delete these template notes once you have
|
|
15
|
+
> real content.
|
|
16
|
+
|
|
17
|
+
**What this file is:** a *technical README for the code* — the specs and design patterns
|
|
18
|
+
of this repository, and a live map from each named concept (a feature, a module, an
|
|
19
|
+
architectural component) to where it actually lives in the codebase and what else touches
|
|
20
|
+
it. It answers two questions without opening the source: **"where does this live?"** and
|
|
21
|
+
**"what breaks if I change it?"**
|
|
22
|
+
|
|
23
|
+
**What this file is not:**
|
|
24
|
+
|
|
25
|
+
- Not a replacement for reading the code when making a change — it is a navigation aid for
|
|
26
|
+
deciding whether a change is safe and who should review it.
|
|
27
|
+
- Not a product spec. `nvaid/PROJECT-RULES.md` says what to build and how; this file says
|
|
28
|
+
where that intent actually landed, after the fact.
|
|
29
|
+
- Not a promise of completeness. §5 exists so this file can honestly state what it has not
|
|
30
|
+
mapped yet, rather than implying coverage it doesn't have.
|
|
31
|
+
|
|
32
|
+
**Keep it current.** Updating this file for every component a change adds, moves, or
|
|
33
|
+
removes is part of the Definition of Done — a stale map is worse than none, because it is
|
|
34
|
+
trusted and wrong.
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## 1. Tech stack & toolchain
|
|
39
|
+
|
|
40
|
+
The authoritative, structured stack lives in **`nvaid/config.yml` → `tech_stack`** (that is
|
|
41
|
+
what agents and the CLI read). Don't duplicate it here — instead, add the *narrative* this
|
|
42
|
+
file is for: why each major choice was made, how the pieces fit together, and any
|
|
43
|
+
non-obvious interactions or constraints a contributor should know before changing them.
|
|
44
|
+
|
|
45
|
+
<e.g. "React + Vite for the SPA; Vitest chosen over Jest for ESM-native speed. The build
|
|
46
|
+
emits a static bundle served by nginx — see §2 and the Dockerfile. No SSR.">
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
## 2. Project structure
|
|
50
|
+
|
|
51
|
+
<A short orientation to the top-level directories — what each is for. Example:>
|
|
52
|
+
|
|
53
|
+
```
|
|
54
|
+
src/
|
|
55
|
+
<area>/ <one line: what lives here>
|
|
56
|
+
<area>/
|
|
57
|
+
test/
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
## 3. Design patterns & conventions
|
|
61
|
+
|
|
62
|
+
<The patterns a contributor (human or agent) must follow to stay consistent with the
|
|
63
|
+
codebase. Be specific — these are the rules an agent can't infer from a single file.
|
|
64
|
+
Examples:>
|
|
65
|
+
|
|
66
|
+
- **<Pattern name>** — <what it is, when to use it, where an example lives>.
|
|
67
|
+
- **State / data flow** — <how state is managed and data moves>.
|
|
68
|
+
- **Error handling** — <the project's convention>.
|
|
69
|
+
- **Naming** — <files, modules, symbols>.
|
|
70
|
+
|
|
71
|
+
## 4. Component map (design concept → code)
|
|
72
|
+
|
|
73
|
+
| Concept / feature | Lives in | Depends on | Changing it affects |
|
|
74
|
+
|---|---|---|---|
|
|
75
|
+
| <e.g. Auth session> | `src/auth/session.ts` | <modules> | <what breaks> |
|
|
76
|
+
| | | | |
|
|
77
|
+
|
|
78
|
+
## 5. Not yet mapped
|
|
79
|
+
|
|
80
|
+
<List components or areas that exist in the code but aren't documented above yet, so this
|
|
81
|
+
file is honest about its coverage. Keep this section — an empty "not yet mapped" is a
|
|
82
|
+
claim of full coverage, and should only be empty when that's actually true.>
|
|
83
|
+
|
|
84
|
+
- <none yet — fill the map as the code grows>
|
|
85
|
+
|
|
86
|
+
## 6. Change log
|
|
87
|
+
|
|
88
|
+
| Version | Date | Change | Author |
|
|
89
|
+
|---|---|---|---|
|
|
90
|
+
| 0.1.0 | <YYYY-MM-DD> | Initial draft from the nvaid template | <name> |
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
---
|
|
2
|
+
document: Project Standards & Engineering Rules
|
|
3
|
+
project: "<project name>"
|
|
4
|
+
version: 0.1.0
|
|
5
|
+
owner: "<owner name>"
|
|
6
|
+
last_updated: "<YYYY-MM-DD>"
|
|
7
|
+
status: draft
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# <project> — Project Standards & Engineering Rules
|
|
11
|
+
|
|
12
|
+
> **Template dropped by `nvaid init` — HAND-OWNED, fill this in.**
|
|
13
|
+
> `nvaid update` never overwrites this file. It is intentionally project-specific:
|
|
14
|
+
> nvaid ships the universal skills and contract/unit rules, but *this* file is where a
|
|
15
|
+
> developer records what is unique to this repo — the approved stack, the guardrails, the
|
|
16
|
+
> data rules. Delete these template notes once you have real content.
|
|
17
|
+
|
|
18
|
+
## 1. What this project is
|
|
19
|
+
|
|
20
|
+
<One short paragraph: the objective, this phase's scope, explicit non-goals. The "why"
|
|
21
|
+
an agent needs in the same file as the "how".>
|
|
22
|
+
|
|
23
|
+
## 2. Architecture principles & constraints
|
|
24
|
+
|
|
25
|
+
### 2.1 Approved technology stack
|
|
26
|
+
|
|
27
|
+
| Layer | Approved | Disallowed without an ADR |
|
|
28
|
+
|---|---|---|
|
|
29
|
+
| <e.g. Backend> | <language/framework> | <what's off-limits> |
|
|
30
|
+
| <e.g. Frontend> | <framework> | <what's off-limits> |
|
|
31
|
+
| <e.g. Data store> | <engine> | <what's off-limits> |
|
|
32
|
+
|
|
33
|
+
### 2.2 Non-negotiable constraints
|
|
34
|
+
|
|
35
|
+
- <e.g. deployment target, network posture, build output format — things an agent must
|
|
36
|
+
not quietly change.>
|
|
37
|
+
|
|
38
|
+
### 2.3 Architecture Decision Records (ADRs)
|
|
39
|
+
|
|
40
|
+
<Where ADRs live and the rule to check them before proposing a change in an area one
|
|
41
|
+
already covers.>
|
|
42
|
+
|
|
43
|
+
## 3. Data rules
|
|
44
|
+
|
|
45
|
+
- <How tenant/user/domain data is handled; what the project's own data is vs. isn't;
|
|
46
|
+
secret-handling discipline.>
|
|
47
|
+
|
|
48
|
+
## 4. Design & coding standards
|
|
49
|
+
|
|
50
|
+
- Follow the existing file/module layout; flag any new structural pattern.
|
|
51
|
+
- Documentation bar (docstrings, module responsibilities) applies to AI-generated code
|
|
52
|
+
the same as human-authored.
|
|
53
|
+
- Linter/formatter config: <link once established>.
|
|
54
|
+
|
|
55
|
+
## 5. Quality & testing rules
|
|
56
|
+
|
|
57
|
+
### 5.1 Definition of Done (per Unit of Work)
|
|
58
|
+
|
|
59
|
+
- [ ] The Unit's stated Acceptance Criteria are met and each traces to a covering test.
|
|
60
|
+
- [ ] Static analysis / security scan passes with no unresolved High findings.
|
|
61
|
+
- [ ] Merge approved by the owning reviewer on gate evidence.
|
|
62
|
+
- [ ] `nvaid/DESIGN-CODE-DICTIONARY.md` updated for every component added/moved/removed.
|
|
63
|
+
|
|
64
|
+
### 5.2 Quality gates (CI gates that must pass before merge)
|
|
65
|
+
|
|
66
|
+
<List the gates CI enforces for this project — build, unit test, coverage floor,
|
|
67
|
+
code quality, security scan, etc. Keep project-wide gates here; per-Intent gates come
|
|
68
|
+
from each Quality Architecture Contract.>
|
|
69
|
+
|
|
70
|
+
## 6. Known gaps (do not silently resolve)
|
|
71
|
+
|
|
72
|
+
- <Open questions the agent must treat as questions, not assumptions to fill in.>
|
|
73
|
+
|
|
74
|
+
## 7. AI operating rules (guardrails, not suggestions)
|
|
75
|
+
|
|
76
|
+
1. **Propose, don't dispose.** A named human approves before anything is merged or
|
|
77
|
+
treated as final. Never approve your own gate.
|
|
78
|
+
2. **Ask before assuming.** Ambiguity → a clarifying question, not a best-guess fill-in.
|
|
79
|
+
3. **Respect existing decisions.** Conflict with an ADR or an approved design → flag it,
|
|
80
|
+
don't quietly resolve it.
|
|
81
|
+
4. **No unreviewed new dependencies.**
|
|
82
|
+
5. **No destructive/irreversible actions without explicit per-action confirmation.**
|
|
83
|
+
6. **Artifact hygiene is part of the task** — code without the matching `nvaid/` artifact
|
|
84
|
+
update is an incomplete task.
|
|
85
|
+
7. **Identify AI-assisted changes** in commits and PRs.
|
|
86
|
+
|
|
87
|
+
<Extend with project-specific guardrails.>
|
|
88
|
+
|
|
89
|
+
## 8. Change log
|
|
90
|
+
|
|
91
|
+
| Version | Date | Change | Author |
|
|
92
|
+
|---|---|---|---|
|
|
93
|
+
| 0.1.0 | <YYYY-MM-DD> | Initial draft from the nvaid template | <name> |
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
# nvaid project config — HAND-OWNED. `nvaid update` never overwrites this file.
|
|
2
|
+
#
|
|
3
|
+
# This is the one place a repo declares who and what it is in the AI-DLC workflow:
|
|
4
|
+
# - which coding agents nvaid targets here,
|
|
5
|
+
# - what tier/role this repo plays,
|
|
6
|
+
# - the full tech stack of the project,
|
|
7
|
+
# - who the named architects are that sign off on each contract,
|
|
8
|
+
# - the always-on project context every agent should carry.
|
|
9
|
+
#
|
|
10
|
+
# Written by `nvaid init`, then yours to maintain. The skills and slash commands read
|
|
11
|
+
# this file to know, for example, who a drafted contract is "awaiting sign-off" from.
|
|
12
|
+
|
|
13
|
+
schema: nvaid/v1
|
|
14
|
+
|
|
15
|
+
# Installation gate. `nvaid init` scaffolds empty templates; the /nvaid:install SKILL
|
|
16
|
+
# then scans the project and fills in all three required documents. The workflow commands
|
|
17
|
+
# (/nvaid:intent, :contracts, :breakdown, :apply) are BLOCKED until install is complete —
|
|
18
|
+
# running them against unfilled templates would produce hollow, confidently-wrong output.
|
|
19
|
+
#
|
|
20
|
+
# Each flag is set to true by /nvaid:install only once that document is genuinely filled
|
|
21
|
+
# (not left as <placeholder> template text) and a human has confirmed it. The install is
|
|
22
|
+
# "complete" when all three are true.
|
|
23
|
+
install:
|
|
24
|
+
config: false # project_name, owning_repo, tech_stack, architects all set
|
|
25
|
+
project_rules: false # nvaid/PROJECT-RULES.md authored (not the template skeleton)
|
|
26
|
+
design_code_dictionary: false # nvaid/DESIGN-CODE-DICTIONARY.md authored (not the skeleton)
|
|
27
|
+
|
|
28
|
+
# A short name for this project/repo, used in generated artifact headers
|
|
29
|
+
# (replaces the {{PROJECT_NAME}} placeholder in PROJECT-RULES.md and the dictionary).
|
|
30
|
+
project_name: "<set-me>"
|
|
31
|
+
|
|
32
|
+
# Which repo this is in the family — used to tag the units this repo owns when a
|
|
33
|
+
# unit-breakdown is cut. One of: frontend | backend | platform | <other>.
|
|
34
|
+
owning_repo: "<set-at-init>"
|
|
35
|
+
|
|
36
|
+
# The full tech stack of this project. This is the STRUCTURED, machine-readable source of
|
|
37
|
+
# truth that agents and the CLI key off — e.g. a skill checks `languages` before proposing
|
|
38
|
+
# a dependency, or picks the right test command from `test`. Keep it factual and short;
|
|
39
|
+
# the narrative "why we chose this / how it fits together" belongs in
|
|
40
|
+
# nvaid/DESIGN-CODE-DICTIONARY.md, which references this block rather than repeating it.
|
|
41
|
+
#
|
|
42
|
+
# Leave a field blank or omit it if it doesn't apply. `additional` is an open map for
|
|
43
|
+
# anything the fixed fields don't cover (message brokers, infra, cloud, auth providers…).
|
|
44
|
+
tech_stack:
|
|
45
|
+
languages: [] # e.g. ["TypeScript", "Python"]
|
|
46
|
+
runtime: "" # e.g. "Node >=18", "Python 3.12"
|
|
47
|
+
frameworks: [] # e.g. ["React", "FastAPI"]
|
|
48
|
+
package_manager: "" # e.g. "npm", "pnpm", "uv", "poetry"
|
|
49
|
+
build: "" # e.g. "Vite", "tsup", "hatch"
|
|
50
|
+
test: "" # e.g. "Vitest", "pytest"
|
|
51
|
+
lint_format: "" # e.g. "eslint + prettier", "ruff"
|
|
52
|
+
database: "" # e.g. "PostgreSQL 16", "none"
|
|
53
|
+
deploy: "" # e.g. "Docker + Kubernetes", "GitHub Pages"
|
|
54
|
+
additional: {} # e.g. { cache: "Redis", broker: "RabbitMQ", auth: "OIDC" }
|
|
55
|
+
|
|
56
|
+
# Named architects who sign off on each role's Architecture Contract.
|
|
57
|
+
#
|
|
58
|
+
# These are SIGN-OFF / OWNERSHIP identities: the person accountable for approving that
|
|
59
|
+
# contract. The AI drafts contracts and flags them "awaiting <role> sign-off from <name>";
|
|
60
|
+
# it never signs on their behalf (propose, don't dispose). Leave a role blank/null if this
|
|
61
|
+
# repo doesn't have that architect — a contract for a missing role is simply not pulled in.
|
|
62
|
+
architects:
|
|
63
|
+
solutions: "<name>" # Solutions Architect
|
|
64
|
+
frontend: "<name>" # Frontend / Identity-Access Architect (if this repo has a frontend)
|
|
65
|
+
backend: "<name>" # Backend Solutions Architect (if this repo has a backend)
|
|
66
|
+
quality: "<name>" # Quality Architect
|
|
67
|
+
customer_experience: "<name>" # Customer Experience Architect (BA / PM)
|
|
68
|
+
# add any project-specific roles here, e.g.:
|
|
69
|
+
# devops: "<name>"
|
|
70
|
+
|
|
71
|
+
# Coding agents nvaid injected skills into. `nvaid update` regenerates exactly these.
|
|
72
|
+
# Managed by init/update; change via `nvaid init` rather than by hand.
|
|
73
|
+
agents: []
|
|
74
|
+
|
|
75
|
+
# Optional project context passed to every agent — constraints an agent can't infer
|
|
76
|
+
# from the code. Keep discoverable codebase facts OUT (same discipline as openspec).
|
|
77
|
+
# The project's full guardrails live in nvaid/PROJECT-RULES.md (fill in that template);
|
|
78
|
+
# this field is just the short, always-on context.
|
|
79
|
+
# Example:
|
|
80
|
+
# context: |
|
|
81
|
+
# On-premises only. No cloud targets.
|
|
82
|
+
# See nvaid/PROJECT-RULES.md for the approved stack and gates.
|
|
83
|
+
context: ""
|
|
84
|
+
|
|
85
|
+
# nvaid version this repo was last generated against. `nvaid validate` compares the
|
|
86
|
+
# installed CLI version to this and flags drift.
|
|
87
|
+
generated_with: "0.2.0"
|
|
File without changes
|