macca-method 1.1.0 → 2.0.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/.agents/legacy-payloads.json +22 -0
- package/{skills-lock.json → .agents/macca-lock.json} +3 -2
- package/.agents/macca-managed-skills.txt +2 -1
- package/.agents/skills/_shared/references/additional-skills.md +30 -0
- package/.agents/skills/_shared/references/brainstorm-session.md +42 -11
- package/.agents/skills/_shared/references/config-mutation.md +25 -0
- package/.agents/skills/_shared/references/finding-format.md +25 -0
- package/.agents/skills/_shared/references/fix-mode.md +39 -0
- package/.agents/skills/_shared/references/human-loop.md +3 -1
- package/.agents/skills/_shared/references/implementation-principles.md +19 -0
- package/.agents/skills/_shared/references/invocation-policy.md +39 -0
- package/.agents/skills/_shared/references/language-config.md +15 -0
- package/.agents/skills/_shared/references/output-ownership.md +4 -2
- package/.agents/skills/_shared/references/runtime-config.md +7 -168
- package/.agents/skills/_shared/references/skill-catalog.md +34 -0
- package/.agents/skills/_shared/scripts/validate-skills.py +106 -4
- package/.agents/skills/add-feature/SKILL.md +10 -7
- package/.agents/skills/brainstorm-api/SKILL.md +49 -194
- package/.agents/skills/brainstorm-api/assets/api.template.md +147 -0
- package/.agents/skills/brainstorm-architecture/SKILL.md +22 -127
- package/.agents/skills/brainstorm-architecture/assets/architecture.template.md +135 -0
- package/.agents/skills/brainstorm-prd/SKILL.md +19 -102
- package/.agents/skills/brainstorm-prd/assets/PRD.template.md +106 -0
- package/.agents/skills/brainstorm-rules/SKILL.md +17 -151
- package/.agents/skills/brainstorm-rules/assets/rules.template.md +127 -0
- package/.agents/skills/brainstorm-schema/SKILL.md +49 -115
- package/.agents/skills/brainstorm-schema/assets/schema.template.md +109 -0
- package/.agents/skills/brainstorm-styleguide/SKILL.md +19 -134
- package/.agents/skills/brainstorm-styleguide/assets/StyleGuide.template.md +147 -0
- package/.agents/skills/brainstorm-task/SKILL.md +22 -107
- package/.agents/skills/brainstorm-task/assets/Task.template.md +113 -0
- package/.agents/skills/bug-fix/SKILL.md +45 -54
- package/.agents/skills/code-review/SKILL.md +26 -19
- package/.agents/skills/code-review/references/review-checklist.md +24 -26
- package/.agents/skills/developer/SKILL.md +25 -39
- package/.agents/skills/developer/references/close-phase.md +25 -0
- package/.agents/skills/developer/references/execute-task.md +69 -0
- package/.agents/skills/developer/references/onboarding.md +47 -0
- package/.agents/skills/help/SKILL.md +12 -13
- package/.agents/skills/meet/SKILL.md +168 -0
- package/.agents/skills/quick-dev/SKILL.md +28 -32
- package/.agents/skills/release-readiness/SKILL.md +149 -0
- package/.agents/skills/spec-audit/SKILL.md +37 -22
- package/.agents/skills/spec-compliance/SKILL.md +41 -40
- package/.agents/skills/spec-init/SKILL.md +29 -14
- package/README.md +171 -122
- package/bin/macca-method.js +779 -85
- package/flow.webp +0 -0
- package/image-macca-method.webp +0 -0
- package/package.json +12 -5
- package/scripts/run-skill-validator.js +24 -0
- package/scripts/test-install.js +398 -0
- package/scripts/test-upgrade-legacy.js +107 -0
- package/scripts/validate-skill-behavior.js +124 -0
- package/.agents/skills/developer/references/execution-workflow.md +0 -322
- package/.agents/skills/rapat/SKILL.md +0 -172
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: help
|
|
3
3
|
description: Interactive guide for the AI Spec-Driven Development system. Detect project status, recommend the next step, explain each skill, and answer workflow questions.
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
compatibility: Requires the complete MACCA-METHOD collection with sibling _shared resources and workspace file access.
|
|
5
|
+
metadata:
|
|
6
|
+
persona: "Galbi"
|
|
7
|
+
persona-role: "Project Manager"
|
|
6
8
|
---
|
|
7
9
|
|
|
8
10
|
# Help — AI Spec-Driven Development Guide
|
|
@@ -11,8 +13,9 @@ persona_role: "Project Manager"
|
|
|
11
13
|
|
|
12
14
|
At startup:
|
|
13
15
|
|
|
14
|
-
1. Read `../_shared/references/
|
|
16
|
+
1. Read `../_shared/references/language-config.md`.
|
|
15
17
|
2. Read `../_shared/references/scope-rules.md`.
|
|
18
|
+
3. Read `../_shared/references/invocation-policy.md` when explaining how a skill is activated.
|
|
16
19
|
3. Use `languagePreferences.communication.normalized` for all chat output, reports, and guidance.
|
|
17
20
|
|
|
18
21
|
---
|
|
@@ -117,12 +120,13 @@ Before recommending the next skill, read `developerPreferences.scope` if present
|
|
|
117
120
|
| PRD + Architecture exist, UI direction is needed | Use `brainstorm-styleguide` |
|
|
118
121
|
| All files exist except Task.md | Run `brainstorm-task` |
|
|
119
122
|
| Task.md exists, incomplete tasks `[ ]` remain | Continue with `developer` |
|
|
120
|
-
| All tasks are complete `[x]`, and
|
|
123
|
+
| All tasks are complete `[x]`, and a small bounded technical change still has a clear phase/task anchor | Use `quick-dev`; use `developer` for larger maintenance, unclear anchoring, or broader post-task work; use `add-feature` when official business/spec scope expands |
|
|
121
124
|
| A bug is reported | Use `bug-fix` |
|
|
122
125
|
| Need to check spec consistency | Run `spec-audit` in **project mode** |
|
|
123
126
|
| Want to audit the MACCA framework itself | Run `spec-audit` in **framework mode** |
|
|
124
|
-
| Want
|
|
125
|
-
|
|
|
127
|
+
| Want one structured round of team input | Run `meet` |
|
|
128
|
+
| Preparing a completed candidate for production | Run `release-readiness` |
|
|
129
|
+
| All tasks are complete, no changes remain | Run `spec-audit` in **project mode**; before production release, run `release-readiness` |
|
|
126
130
|
|
|
127
131
|
---
|
|
128
132
|
|
|
@@ -136,18 +140,13 @@ For deeper questions, use the routing guide below instead of answering from memo
|
|
|
136
140
|
|
|
137
141
|
## Reference Routing
|
|
138
142
|
|
|
139
|
-
For deeper questions,
|
|
140
|
-
|
|
141
|
-
- System overview and workflow order -> sections 2, 5, 6, 7, and 8 of `README.md`
|
|
142
|
-
- Skill catalog and responsibilities -> section 4 of `README.md`
|
|
143
|
-
- `developer-config.json` schema and compatibility -> section 3d of `README.md` and `../_shared/references/runtime-config.md`
|
|
144
|
-
- Traceability IDs and glossary terms -> section 3 of `README.md`
|
|
145
|
-
- Installation and upgrade behavior -> sections 9 and 10 of `README.md`
|
|
143
|
+
For deeper workflow questions, inspect the active MACCA collection: skill descriptions and `SKILL.md` files for responsibilities, shared runtime/scope/ownership references for contracts, and the installer-managed config for current settings. Read a repository-root `README.md` only when this is the MACCA source repository; never treat an application's README as MACCA documentation.
|
|
146
144
|
|
|
147
145
|
Keep inline explanations short:
|
|
148
146
|
- `spec-compliance` = checks whether the code matches the agreed specs
|
|
149
147
|
- `code-review` = checks whether implementation quality and security are good
|
|
150
148
|
- `brainstorm-*` = defines source-of-truth planning documents
|
|
151
149
|
- `developer` = executes `Task.md` phase by phase
|
|
150
|
+
- `release-readiness` = report-only gate for deployment, migration, config, observability, rollback, and operational evidence
|
|
152
151
|
|
|
153
152
|
If a question needs exact wording or edge-case details, read the matching README section first instead of paraphrasing from memory.
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: meet
|
|
3
|
+
description: Runs a structured single-round team meeting where each selected MACCA persona gives exactly one complete recommendation before Galbi summarizes decisions and artifact handoffs. Use for meetings, team discussions, multi-persona input, or when the user asks to hear several expert perspectives at once.
|
|
4
|
+
compatibility: Requires the complete MACCA-METHOD collection with sibling _shared resources and workspace file access.
|
|
5
|
+
metadata:
|
|
6
|
+
persona: "Galbi"
|
|
7
|
+
persona-role: "Project Manager"
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Team Meeting
|
|
11
|
+
|
|
12
|
+
## Shared Runtime Setup
|
|
13
|
+
|
|
14
|
+
At startup:
|
|
15
|
+
|
|
16
|
+
1. Read `../_shared/references/language-config.md`.
|
|
17
|
+
2. Read `../_shared/references/output-ownership.md`.
|
|
18
|
+
3. Use `languagePreferences.communication.normalized` for the meeting output.
|
|
19
|
+
|
|
20
|
+
## Character
|
|
21
|
+
|
|
22
|
+
Operate as `@Galbi` (Project Manager). Use the shared persona profile in `../_shared/references/personas.md`.
|
|
23
|
+
|
|
24
|
+
## Meeting Contract
|
|
25
|
+
|
|
26
|
+
@Galbi runs one structured meeting round. The user supplies the agenda and selects participants. Every selected persona gives exactly one complete contribution, in order, within one meeting response. @Galbi then summarizes and closes the meeting automatically.
|
|
27
|
+
|
|
28
|
+
Required flow:
|
|
29
|
+
|
|
30
|
+
1. Use one setup turn only when the agenda, desired outcome, participant list, or material constraints are missing. Evidence is optional.
|
|
31
|
+
2. Deliver all selected persona contributions in one meeting response.
|
|
32
|
+
3. Give each selected persona exactly one contribution block.
|
|
33
|
+
4. Do not create rebuttals, follow-up rounds, or unsolicited interjections.
|
|
34
|
+
5. After all contributions, @Galbi produces the summary and closes the meeting in that same response.
|
|
35
|
+
6. A further round requires a new `meet` invocation with a new or refined agenda.
|
|
36
|
+
|
|
37
|
+
Facilitation text and the final summary do not count as @Galbi's participant contribution. @Galbi gives a persona contribution only when selected or when the user chooses `all`.
|
|
38
|
+
|
|
39
|
+
## Step 1: Collect Meeting Inputs
|
|
40
|
+
|
|
41
|
+
If the user already provided the agenda, desired outcome, participants, and material constraints, continue directly to Step 2 without asking again. Otherwise, ask for every missing item in one message. Evidence remains optional:
|
|
42
|
+
|
|
43
|
+
```text
|
|
44
|
+
Welcome to the team meeting room.
|
|
45
|
+
|
|
46
|
+
Agenda:
|
|
47
|
+
- What decision, problem, or proposal should the team review?
|
|
48
|
+
|
|
49
|
+
Desired outcome:
|
|
50
|
+
- What must be decided or produced by the end of this meeting?
|
|
51
|
+
|
|
52
|
+
Hard constraints:
|
|
53
|
+
- Which constraints, deadlines, or excluded options cannot be negotiated? Write "none" if there are none.
|
|
54
|
+
|
|
55
|
+
Evidence (optional):
|
|
56
|
+
- Which specs, measurements, incidents, or proposals should participants consider?
|
|
57
|
+
|
|
58
|
+
Available participants:
|
|
59
|
+
- @Galbi — Product scope, user value, priorities, sequencing
|
|
60
|
+
- @Fachri — Architecture, security, data/API contracts, code quality
|
|
61
|
+
- @Akram — User flow, UI/UX, accessibility, design-system impact
|
|
62
|
+
- @Firdaus — Implementation, reuse, dependencies, effort, validation
|
|
63
|
+
- @Ikhsan — Failure modes, edge cases, regressions, investigation
|
|
64
|
+
|
|
65
|
+
Participants:
|
|
66
|
+
- Who should contribute? Example: "Fachri Firdaus" or "all".
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
Use `all` only when the user explicitly selects the whole team. Otherwise, include only the named participants. @Galbi always facilitates even when not selected as a contributor.
|
|
70
|
+
|
|
71
|
+
Read only agenda-relevant evidence named by the user or already available in `project-context/`. In every contribution, distinguish evidence from assumption. Do not scan unrelated specs.
|
|
72
|
+
|
|
73
|
+
## Step 2: Run One Ordered Round
|
|
74
|
+
|
|
75
|
+
@Galbi introduces the agenda and selected participants in one short facilitator sentence. Do not create separate introduction messages.
|
|
76
|
+
|
|
77
|
+
Use this fixed order and skip unselected personas:
|
|
78
|
+
|
|
79
|
+
1. `@Galbi` — Product Manager
|
|
80
|
+
2. `@Fachri` — Tech Lead
|
|
81
|
+
3. `@Akram` — UI/UX Designer
|
|
82
|
+
4. `@Firdaus` — Expert Developer
|
|
83
|
+
5. `@Ikhsan` — Debugger
|
|
84
|
+
|
|
85
|
+
Each selected persona gets exactly one block:
|
|
86
|
+
|
|
87
|
+
````markdown
|
|
88
|
+
### @Persona — [Role]
|
|
89
|
+
|
|
90
|
+
**Recommendation:** [one clear recommendation]
|
|
91
|
+
|
|
92
|
+
**Why:** [concise reasoning from the persona's domain]
|
|
93
|
+
|
|
94
|
+
**Evidence / assumption:** [supporting fact, or clearly labeled assumption]
|
|
95
|
+
|
|
96
|
+
**Risk / trade-off:** [most important risk, or "No material risk identified"]
|
|
97
|
+
|
|
98
|
+
**Suggested action:** [one concrete next action]
|
|
99
|
+
````
|
|
100
|
+
|
|
101
|
+
Contribution rules:
|
|
102
|
+
|
|
103
|
+
- One block is the persona's entire opportunity to speak. Make it complete but concise.
|
|
104
|
+
- Do not let an unselected persona contribute.
|
|
105
|
+
- A persona may acknowledge another domain inside the same block but may not respond again later.
|
|
106
|
+
- Do not simulate debate, back-and-forth, or agreement messages.
|
|
107
|
+
- If recommendations conflict, preserve both positions. Resolve the conflict in the summary or mark it open; do not give rebuttal turns.
|
|
108
|
+
- Do not repeat the same recommendation through multiple personas unless their reasons or risks are materially different.
|
|
109
|
+
- Every recommendation must address the desired outcome and respect hard constraints.
|
|
110
|
+
|
|
111
|
+
## Step 3: Summarize and Map Artifacts
|
|
112
|
+
|
|
113
|
+
Immediately after the final persona contribution, @Galbi organizes the outcome into:
|
|
114
|
+
|
|
115
|
+
1. **Final Decisions** — sufficiently supported conclusions.
|
|
116
|
+
2. **Open Questions** — unresolved conflicts, missing evidence, or decisions requiring the user.
|
|
117
|
+
3. **Action Items** — concrete follow-up work and its owning skill.
|
|
118
|
+
|
|
119
|
+
Map every final decision to its primary artifact using `../_shared/references/output-ownership.md`:
|
|
120
|
+
|
|
121
|
+
- Feature scope, user flow, business rules -> `project-context/PRD.md`
|
|
122
|
+
- Technical decisions, ADRs, system structure -> `project-context/architecture.md`
|
|
123
|
+
- Data models and persistence contracts -> `project-context/schema.md`
|
|
124
|
+
- API operations, auth, and error contracts -> `project-context/api.md`
|
|
125
|
+
- UI, components, accessibility, design tokens -> `project-context/StyleGuide.md`
|
|
126
|
+
- Coding rules or AI behavior -> `project-context/rules.md`
|
|
127
|
+
- Next work or new phases -> `project-context/Task.md`
|
|
128
|
+
- Confirmed resolved bugs -> `project-context/bug-log.md`
|
|
129
|
+
|
|
130
|
+
The meeting is discussion-only. It reports artifact handoffs but does not edit those artifacts. Use the owning skill afterward.
|
|
131
|
+
|
|
132
|
+
## Step 4: Close Automatically
|
|
133
|
+
|
|
134
|
+
Use this structure in the same meeting response:
|
|
135
|
+
|
|
136
|
+
````markdown
|
|
137
|
+
## @Galbi — Meeting Summary
|
|
138
|
+
|
|
139
|
+
### Final Decisions
|
|
140
|
+
- [decision, or "No final decision yet"]
|
|
141
|
+
|
|
142
|
+
### Open Questions
|
|
143
|
+
- [unresolved item, or "None"]
|
|
144
|
+
|
|
145
|
+
### Action Items
|
|
146
|
+
- [action] — owner: `[skill-name]`
|
|
147
|
+
|
|
148
|
+
### Artifact Handoffs
|
|
149
|
+
- `project-context/[filename].md` — [required update]
|
|
150
|
+
|
|
151
|
+
### Recommended Next Skill
|
|
152
|
+
- `[skill-name]` — [reason]
|
|
153
|
+
|
|
154
|
+
Meeting closed. Start a new `meet` if another round is needed.
|
|
155
|
+
````
|
|
156
|
+
|
|
157
|
+
## Rules
|
|
158
|
+
|
|
159
|
+
1. @Galbi always facilitates, keeps the order, summarizes, and closes.
|
|
160
|
+
2. Every persona stays within their assigned domain.
|
|
161
|
+
3. Every selected persona gets exactly one contribution block.
|
|
162
|
+
4. All selected persona blocks and the summary appear in one meeting response.
|
|
163
|
+
5. No persona gets a second response, rebuttal, or follow-up turn.
|
|
164
|
+
6. Unselected personas remain silent.
|
|
165
|
+
7. Every final decision has at least one target artifact.
|
|
166
|
+
8. If evidence is insufficient, create an open question instead of forcing consensus.
|
|
167
|
+
9. Meeting output does not directly modify project artifacts.
|
|
168
|
+
10. Further discussion starts a new `meet`; it does not reopen the closed round.
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: quick-dev
|
|
3
|
-
description:
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
description: Executes one small, focused implementation task, records it in Task.md, and runs spec-compliance plus code-review. Use for targeted layout, copy, styling, or minor logic changes. Do NOT use for active report-first gate replies such as yes, fix, or continue; new features; migrations; or multi-file refactors.
|
|
4
|
+
compatibility: Requires the complete MACCA-METHOD collection with sibling _shared resources and workspace file access.
|
|
5
|
+
metadata:
|
|
6
|
+
persona: "Firdaus"
|
|
7
|
+
persona-role: "Expert Developer"
|
|
6
8
|
---
|
|
7
9
|
|
|
8
10
|
# Quick Dev
|
|
@@ -11,11 +13,14 @@ persona_role: "Expert Developer"
|
|
|
11
13
|
|
|
12
14
|
Before any output:
|
|
13
15
|
|
|
14
|
-
1. Read `../_shared/references/
|
|
15
|
-
2. Read `../_shared/references/
|
|
16
|
-
3. Read
|
|
17
|
-
4.
|
|
18
|
-
5.
|
|
16
|
+
1. Read `../_shared/references/language-config.md`.
|
|
17
|
+
2. Read `../_shared/references/config-mutation.md`.
|
|
18
|
+
3. Read `../_shared/references/fix-mode.md`.
|
|
19
|
+
4. Read `../_shared/references/human-loop.md`.
|
|
20
|
+
5. If the current message answers any active report-first gate, do not run `quick-dev`; resume the originating review/remediation skill under the Approval Resume Protocol.
|
|
21
|
+
6. Otherwise, read `codeReviewPreferences.fixMode` from `.agents/developer-config.json`. If missing, treat as `"report-first"`. Announce: `[Fix mode: report-first]` or `[Fix mode: fix-then-report]`.
|
|
22
|
+
7. Use `languagePreferences.communication.normalized` for chat.
|
|
23
|
+
8. Use `languagePreferences.documents.normalized` for generated artifacts.
|
|
19
24
|
|
|
20
25
|
---
|
|
21
26
|
|
|
@@ -23,19 +28,7 @@ Before any output:
|
|
|
23
28
|
|
|
24
29
|
Run as `@Firdaus` (Expert Developer). Use the shared persona profile in `../_shared/references/personas.md`.
|
|
25
30
|
|
|
26
|
-
|
|
27
|
-
- **YAGNI Ladder — MUST climb before writing a single line of code. MUST NOT skip steps. Stop at the first sufficient step:**
|
|
28
|
-
1. Does this need to be built? (YAGNI) — if not, stop.
|
|
29
|
-
2. Does it already exist in the codebase? MUST search and reuse it — MUST NOT duplicate it.
|
|
30
|
-
3. Is it in the standard library? MUST use it.
|
|
31
|
-
4. Is it native to the platform/framework? MUST use it.
|
|
32
|
-
5. Is it in an installed dependency? MUST use it.
|
|
33
|
-
6. Can it be one line? MUST make it one line.
|
|
34
|
-
7. Only if none of the above applies: write the minimum working code.
|
|
35
|
-
- Comments explain WHY, not WHAT.
|
|
36
|
-
- Deletion > addition. Boring > clever. Fewest files. Shortest working diff wins.
|
|
37
|
-
- Bug fixes = root cause, not symptoms.
|
|
38
|
-
- Business logic or scope changes → ask the user. Technical decisions → decide yourself.
|
|
31
|
+
Read and follow `../_shared/references/implementation-principles.md`. Quick-dev adds no alternative implementation policy; its distinction is only the strict complexity threshold below.
|
|
39
32
|
|
|
40
33
|
---
|
|
41
34
|
|
|
@@ -77,7 +70,7 @@ After the user answers, create or update `.agents/developer-config.json` with `n
|
|
|
77
70
|
Read `additionalSkills` and `availableMCPs` from `.agents/developer-config.json`.
|
|
78
71
|
|
|
79
72
|
- **Both exist:** show `[Skills: N registered] [MCPs: ...]` on one line. Tell the user to correct now if needed.
|
|
80
|
-
- **Either missing:**
|
|
73
|
+
- **Either missing:** read `../developer/references/onboarding.md`, ask only the missing setup questions, and preserve other fields.
|
|
81
74
|
|
|
82
75
|
---
|
|
83
76
|
|
|
@@ -119,7 +112,7 @@ Need confirmation before proceeding: ← omit entire block if none
|
|
|
119
112
|
- Omit "Need confirmation" block entirely if there are no blocking ambiguities.
|
|
120
113
|
- Non-blocking ambiguities go under "Assumptions" as `[~]` — not as questions.
|
|
121
114
|
- If a needed spec is missing (e.g. no `StyleGuide.md` but task touches UI), note it under Specs as `StyleGuide.md — missing, UI compliance cannot be verified`.
|
|
122
|
-
-
|
|
115
|
+
- If a blocking question exists, wait for its answer. Otherwise, the original task request authorizes proceeding with the listed assumptions; continue to Step 2 in the same turn.
|
|
123
116
|
|
|
124
117
|
---
|
|
125
118
|
|
|
@@ -151,24 +144,27 @@ Scan `[FORBIDDEN]` in `rules.md` before any coding.
|
|
|
151
144
|
|
|
152
145
|
---
|
|
153
146
|
|
|
147
|
+
## Step 2b — Record an Approved Scope Delta Before Coding
|
|
148
|
+
|
|
149
|
+
If the task is outside `project-context/`, follow the approval flow from `developer` Step 3a before editing code. After approval, create or update the lightweight `Task.md` entry immediately with `status: in-progress` and the delta details. If `Task.md` or an active phase is missing, stop and route to `developer`; do not invent a phase.
|
|
150
|
+
|
|
154
151
|
## Step 3 — Execute
|
|
155
152
|
|
|
156
|
-
Read `../developer/references/
|
|
153
|
+
Read `../developer/references/execute-task.md` and follow its task execution workflow:
|
|
157
154
|
|
|
158
|
-
-
|
|
159
|
-
-
|
|
160
|
-
-
|
|
161
|
-
-
|
|
162
|
-
-
|
|
163
|
-
- **3c.6** — Validate.
|
|
155
|
+
- Understand scope and record approved deltas before coding.
|
|
156
|
+
- Clarify only blocking ambiguity.
|
|
157
|
+
- Define I/O for non-trivial logic.
|
|
158
|
+
- Use additional skills, MCP, shared implementation principles, and project testing policy.
|
|
159
|
+
- Self-review and validate.
|
|
164
160
|
|
|
165
|
-
|
|
161
|
+
The approved scope delta must already exist before this step. Never defer its record until after coding.
|
|
166
162
|
|
|
167
163
|
---
|
|
168
164
|
|
|
169
165
|
## Step 4 — Update Task.md
|
|
170
166
|
|
|
171
|
-
Do a lightweight scan of `Task.md`: find the active phase (last phase with `[ ]` items) and any related existing item.
|
|
167
|
+
Do a lightweight scan of `Task.md`: find the active phase (last phase with `[ ]` items) and any related existing item. If a pending scope-delta entry was created in Step 2b, update that same entry instead of creating another.
|
|
172
168
|
|
|
173
169
|
| Condition | Action |
|
|
174
170
|
|---|---|
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: release-readiness
|
|
3
|
+
description: Produces a report-only production release readiness verdict from existing specs, quality-gate results, deployment evidence, migrations, configuration, observability, rollback, and runbooks. Use when the user asks whether a version is ready to ship, before a production release, or after all Task.md phases are complete. Never deploys or changes production.
|
|
4
|
+
compatibility: Requires the complete MACCA-METHOD collection with sibling _shared resources, git when reviewing diffs, and workspace file access.
|
|
5
|
+
metadata:
|
|
6
|
+
persona: "Fachri"
|
|
7
|
+
persona-role: "Tech Lead"
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Release Readiness
|
|
11
|
+
|
|
12
|
+
## Shared Setup
|
|
13
|
+
|
|
14
|
+
1. Read `../_shared/references/language-config.md`.
|
|
15
|
+
2. Use the configured communication language.
|
|
16
|
+
3. This skill is report-only. Do not edit files, run deployment, publish packages, rotate secrets, apply migrations, or change infrastructure.
|
|
17
|
+
|
|
18
|
+
## Role and Boundary
|
|
19
|
+
|
|
20
|
+
Run as `@Fachri` (Tech Lead). Use the shared persona profile in `../_shared/references/personas.md`.
|
|
21
|
+
|
|
22
|
+
Answer one question: **Is the current candidate safe and operationally ready to release?**
|
|
23
|
+
|
|
24
|
+
Do not repeat full `spec-compliance`, `code-review`, or `spec-audit` analysis. Consume their existing evidence when available. If required evidence is absent, mark it `NOT VERIFIED`; do not invent a pass.
|
|
25
|
+
|
|
26
|
+
## Step 1: Identify the Candidate
|
|
27
|
+
|
|
28
|
+
Determine from the user request and repository:
|
|
29
|
+
|
|
30
|
+
- Target environment: production, staging, preview, package registry, or another explicit destination
|
|
31
|
+
- Candidate: branch, commit, tag, version, or current worktree
|
|
32
|
+
- Release scope: changed features/modules and affected data/integrations
|
|
33
|
+
|
|
34
|
+
Ask one focused question only if the candidate or target environment cannot be determined. Never assume production.
|
|
35
|
+
|
|
36
|
+
## Step 2: Read Existing Evidence
|
|
37
|
+
|
|
38
|
+
Read only applicable evidence:
|
|
39
|
+
|
|
40
|
+
- `project-context/PRD.md` — rollout, success criteria, NFRs, degraded behavior
|
|
41
|
+
- `project-context/architecture.md` — deployment, observability, rollback, recovery, ownership
|
|
42
|
+
- `project-context/schema.md` — migration, backfill, compatibility, data recovery
|
|
43
|
+
- `project-context/api.md` — deprecation, retry, SLO, contract invariants
|
|
44
|
+
- `project-context/rules.md` — release, logging, migration, feature flag, dependency rules
|
|
45
|
+
- `project-context/StyleGuide.md` — accessibility and operational UI states when UI changed
|
|
46
|
+
- `project-context/Task.md` — phase completion and Definition of Done
|
|
47
|
+
- Relevant plans, CI results, build/test output, migration files, environment examples, deployment config, runbooks, changelog, and version files
|
|
48
|
+
|
|
49
|
+
Treat chat claims without reproducible evidence as `NOT VERIFIED`.
|
|
50
|
+
|
|
51
|
+
## Step 3: Check Readiness Areas
|
|
52
|
+
|
|
53
|
+
Use `N/A` only with a reason.
|
|
54
|
+
|
|
55
|
+
### RR-01 Scope and Quality Gates
|
|
56
|
+
|
|
57
|
+
- Release scope is explicit and traceable to completed tasks/requirements.
|
|
58
|
+
- Applicable acceptance criteria and phase Definition of Done are complete.
|
|
59
|
+
- Latest relevant `spec-compliance`, `code-review`, and final `spec-audit` evidence has no unresolved BLOCKER/MAJOR findings.
|
|
60
|
+
|
|
61
|
+
### RR-02 Build, Tests, and Smoke Validation
|
|
62
|
+
|
|
63
|
+
- Required build, test, type, lint, and package checks pass under the approved testing policy.
|
|
64
|
+
- A release smoke test covers the critical user journey or service readiness path.
|
|
65
|
+
- Test evidence applies to the candidate, not an older commit.
|
|
66
|
+
|
|
67
|
+
### RR-03 Configuration and Secrets
|
|
68
|
+
|
|
69
|
+
- Required environment variables are documented and validated for the target environment.
|
|
70
|
+
- No secrets are committed or printed in logs.
|
|
71
|
+
- Secret ownership, provisioning, rotation, and revocation are known where applicable.
|
|
72
|
+
|
|
73
|
+
### RR-04 Data Migration and Recovery
|
|
74
|
+
|
|
75
|
+
- Migration order, compatibility, backfill, validation, and failure recovery match `schema.md`.
|
|
76
|
+
- Backup/restore or roll-forward evidence exists when data loss is possible.
|
|
77
|
+
- Destructive changes have explicit approval and a tested recovery path.
|
|
78
|
+
|
|
79
|
+
### RR-05 Deployment, Rollback, and Flags
|
|
80
|
+
|
|
81
|
+
- Deployment owner and procedure are known.
|
|
82
|
+
- Rollback trigger, mechanism, and post-rollback checks are executable.
|
|
83
|
+
- Feature flags have safe defaults, owner, rollout plan, and cleanup/review trigger where used.
|
|
84
|
+
|
|
85
|
+
### RR-06 Observability and Incident Readiness
|
|
86
|
+
|
|
87
|
+
- Required logs, metrics, traces, dashboards, and alerts exist for the released behavior.
|
|
88
|
+
- Sensitive data is redacted.
|
|
89
|
+
- Health/readiness checks reflect real dependency health where applicable.
|
|
90
|
+
- Runbook, escalation owner, and incident contact are known for production services.
|
|
91
|
+
|
|
92
|
+
### RR-07 Compatibility and Consumer Communication
|
|
93
|
+
|
|
94
|
+
- API/schema/config compatibility and deprecation rules are satisfied.
|
|
95
|
+
- Changelog, version, migration notes, and consumer/user communication are ready where applicable.
|
|
96
|
+
|
|
97
|
+
### RR-08 UI and Operational Experience
|
|
98
|
+
|
|
99
|
+
- Applicable accessibility target and loading/empty/error/forbidden/offline states are verified.
|
|
100
|
+
- UI performance constraints are met when UI changed.
|
|
101
|
+
|
|
102
|
+
## Step 4: Verdict
|
|
103
|
+
|
|
104
|
+
Verdicts:
|
|
105
|
+
|
|
106
|
+
- `READY` — every applicable area is verified; no unresolved release blocker.
|
|
107
|
+
- `CONDITIONAL` — no blocker, but named pre-release actions remain and have owners.
|
|
108
|
+
- `NOT READY` — any BLOCKER, unresolved MAJOR, missing recovery for destructive data change, missing required quality evidence, or unknown production-critical configuration.
|
|
109
|
+
|
|
110
|
+
Use this report:
|
|
111
|
+
|
|
112
|
+
````markdown
|
|
113
|
+
# Release Readiness Report
|
|
114
|
+
|
|
115
|
+
**Candidate:** [branch/commit/tag/version]
|
|
116
|
+
**Target:** [environment]
|
|
117
|
+
**Verdict:** READY / CONDITIONAL / NOT READY
|
|
118
|
+
|
|
119
|
+
## Evidence Summary
|
|
120
|
+
| Area | Status | Evidence |
|
|
121
|
+
|------|--------|----------|
|
|
122
|
+
| RR-01 Scope & quality gates | PASS / FAIL / NOT VERIFIED / N/A | [source] |
|
|
123
|
+
| RR-02 Build, tests & smoke | ... | ... |
|
|
124
|
+
| RR-03 Config & secrets | ... | ... |
|
|
125
|
+
| RR-04 Migration & recovery | ... | ... |
|
|
126
|
+
| RR-05 Deploy, rollback & flags | ... | ... |
|
|
127
|
+
| RR-06 Observability & incidents | ... | ... |
|
|
128
|
+
| RR-07 Compatibility & communication | ... | ... |
|
|
129
|
+
| RR-08 UI operational experience | ... | ... |
|
|
130
|
+
|
|
131
|
+
## Blockers
|
|
132
|
+
- [blocker, evidence, owner]
|
|
133
|
+
|
|
134
|
+
## Required Before Release
|
|
135
|
+
- [action] — owner: [role] — validation: [proof required]
|
|
136
|
+
|
|
137
|
+
## Accepted Residual Risks
|
|
138
|
+
- [risk and explicit owner/expiry] / None
|
|
139
|
+
````
|
|
140
|
+
|
|
141
|
+
## Rules
|
|
142
|
+
|
|
143
|
+
1. Report-only: never deploy or mutate release systems.
|
|
144
|
+
2. Evidence beats confidence; missing proof is `NOT VERIFIED`.
|
|
145
|
+
3. Do not rerun broad quality reviews when current results exist.
|
|
146
|
+
4. Never downgrade a BLOCKER/MAJOR from another gate without new evidence from that gate.
|
|
147
|
+
5. Do not require irrelevant enterprise controls for prototypes or non-production targets; use `N/A` with reasons.
|
|
148
|
+
6. A production data migration without a viable recovery strategy is `NOT READY`.
|
|
149
|
+
7. A `READY` verdict expires when the candidate or relevant configuration changes.
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: spec-audit
|
|
3
|
-
description:
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
description: Audits cross-document consistency in project specs or the MACCA framework and applies explicitly requested corrections. Use for spec alignment, framework drift, and when the user replies yes, fix, continue, or finding IDs to this skill's correction gate.
|
|
4
|
+
compatibility: Requires the complete MACCA-METHOD collection with sibling _shared resources and workspace file access.
|
|
5
|
+
metadata:
|
|
6
|
+
persona: "Fachri"
|
|
7
|
+
persona-role: "Tech Lead"
|
|
6
8
|
---
|
|
7
9
|
|
|
8
10
|
# Spec Audit
|
|
@@ -11,9 +13,12 @@ persona_role: "Tech Lead"
|
|
|
11
13
|
|
|
12
14
|
At startup:
|
|
13
15
|
|
|
14
|
-
1. Read `../_shared/references/
|
|
15
|
-
2. Read
|
|
16
|
-
3.
|
|
16
|
+
1. Read `../_shared/references/language-config.md`.
|
|
17
|
+
2. Read `../_shared/references/fix-mode.md`.
|
|
18
|
+
3. Read `../_shared/references/human-loop.md`.
|
|
19
|
+
3. If this message answers this skill's active correction gate, resume directly under the Approval Resume Protocol. Do not rerun startup or the audit.
|
|
20
|
+
4. Otherwise, read `codeReviewPreferences.fixMode` from `.agents/developer-config.json`. If it is missing, treat it as `"report-first"`. Announce: `[Fix mode: report-first]` or `[Fix mode: fix-then-report]`.
|
|
21
|
+
5. Use `languagePreferences.communication.normalized` for audit reports.
|
|
17
22
|
|
|
18
23
|
---
|
|
19
24
|
|
|
@@ -41,7 +46,7 @@ You check **between** documents, not inside a single document.
|
|
|
41
46
|
|
|
42
47
|
## Fix Mode
|
|
43
48
|
|
|
44
|
-
Mode is read in Shared Runtime Setup. Enforcement rules, including the required gate prompt, are in `../_shared/references/
|
|
49
|
+
Mode is read in Shared Runtime Setup. Enforcement rules, including the required gate prompt, are in `../_shared/references/fix-mode.md`.
|
|
45
50
|
|
|
46
51
|
To change it: update `codeReviewPreferences.fixMode` in `.agents/developer-config.json`.
|
|
47
52
|
|
|
@@ -92,14 +97,9 @@ Read everything that exists. Note ID patterns if they are used.
|
|
|
92
97
|
|
|
93
98
|
### Framework Mode
|
|
94
99
|
|
|
95
|
-
|
|
96
|
-
- `README.md` - workflow, skill list, structure
|
|
97
|
-
- `.agents/skills/*/SKILL.md` - per-skill behavior contracts
|
|
98
|
-
- `.agents/skills/_shared/references/*.md` - shared cross-skill contracts
|
|
99
|
-
- `.agents/skills/*/references/*.md` - reference files with workflow/checklist detail
|
|
100
|
-
- Installation/upgrade scripts if the audit touches them
|
|
100
|
+
Resolve the active skill installation root. First read `_shared/references/skill-catalog.md`, `invocation-policy.md`, `output-ownership.md`, `scope-rules.md`, and the MACCA README only when this is the MACCA source repository.
|
|
101
101
|
|
|
102
|
-
|
|
102
|
+
Compare compact contracts first. Read full `SKILL.md`, local references/assets, or installer code only for skills/relationships flagged by that comparison or explicitly named by the user. Do not load the entire collection by default. Do not treat an application's README as MACCA documentation.
|
|
103
103
|
|
|
104
104
|
---
|
|
105
105
|
|
|
@@ -110,36 +110,44 @@ Read `README.md`, relevant `SKILL.md` files, and relevant reference files. Note
|
|
|
110
110
|
**SA-01: PRD ↔ architecture**
|
|
111
111
|
- Does the architecture support the PRD NFRs (performance, security, accessibility)?
|
|
112
112
|
- Do the PRD constraints fit the chosen tech stack?
|
|
113
|
+
- Do PRD success metrics map to architecture observability signals where technical instrumentation is required?
|
|
114
|
+
- Does product rollout align with deployment, rollback, and recovery constraints?
|
|
113
115
|
|
|
114
116
|
**SA-02: PRD ↔ schema**
|
|
115
|
-
- Does every PRD entity have a
|
|
116
|
-
- Do
|
|
117
|
+
- Does every persisted PRD entity have a datastore-native representation (table, collection, aggregate, node, stream, or equivalent)?
|
|
118
|
+
- Do validation, relationship, consistency, and retention rules reflect PRD business rules?
|
|
117
119
|
|
|
118
120
|
**SA-03: PRD ↔ api**
|
|
119
|
-
- Does every PRD feature have supporting
|
|
120
|
-
- Does `api.md` contain
|
|
121
|
+
- Does every integration-facing PRD feature have supporting operations (endpoint, query/mutation, procedure, event, or equivalent)?
|
|
122
|
+
- Does `api.md` contain operations for PRD non-goals?
|
|
121
123
|
|
|
122
124
|
**SA-04: PRD ↔ Task.md**
|
|
123
125
|
- Is every PRD feature mapped to >=1 task?
|
|
124
126
|
- Does Task.md include tasks for features not in the PRD (scope creep)? If the feature is recorded in `## Approved Scope Delta`, mark it as `pending formal spec sync`, not a direct conflict.
|
|
125
127
|
- Do PRD IDs (`FEAT-*`, `BR-*`) appear in Task.md traceability?
|
|
128
|
+
- Do rollout, analytics, degraded behavior, and applicable NFR work have tasks or explicit N/A decisions?
|
|
126
129
|
|
|
127
130
|
**SA-05: schema ↔ api**
|
|
128
|
-
- Does every
|
|
131
|
+
- Does every persisted input/output field in `api.md` map to the data contract where appropriate?
|
|
129
132
|
- Do response types match schema types?
|
|
130
133
|
- If schema/api traceability is used, does it reference real PRD IDs?
|
|
134
|
+
- Do API retry/idempotency assumptions align with schema concurrency and consistency rules?
|
|
131
135
|
|
|
132
136
|
**SA-06: architecture ↔ rules**
|
|
133
137
|
- Are architectural patterns (e.g. repository pattern) required in `rules.md`?
|
|
134
138
|
- Do any rules conflict with the chosen architecture?
|
|
139
|
+
- Do logging, migration, feature-flag, generated-code, and secret rules exist only when their architecture/schema mechanisms apply?
|
|
135
140
|
|
|
136
141
|
**SA-07: architecture ↔ schema**
|
|
137
142
|
- Does schema notation fit the architecture's database choice?
|
|
138
143
|
- Is schema style consistent with the architecture's ORM choice?
|
|
144
|
+
- Do tenancy, scale, migration, backup, and recovery assumptions align?
|
|
139
145
|
|
|
140
146
|
**SA-08: StyleGuide ↔ PRD**
|
|
141
147
|
- Does the CSS framework in StyleGuide match any PRD mention?
|
|
142
148
|
- Are all PRD pages/features covered by StyleGuide components?
|
|
149
|
+
- Do accessibility targets and supported locales match the PRD?
|
|
150
|
+
- Do operational UI states cover PRD failure/degraded behavior where UI is involved?
|
|
143
151
|
|
|
144
152
|
**SA-09: Task.md ↔ all specs**
|
|
145
153
|
- Do task references point to real spec sections?
|
|
@@ -147,6 +155,7 @@ Read `README.md`, relevant `SKILL.md` files, and relevant reference files. Note
|
|
|
147
155
|
- If task traceability IDs are used, do they reference real PRD/schema/api/rules IDs?
|
|
148
156
|
- Are semi-structured fields (ID, table, `Trace to`, `Traceability ID`) preserved instead of replaced with free text?
|
|
149
157
|
- If new scope exists only in `## Approved Scope Delta`, the audit must separate it as `temporary approval`, not mix it with uncontrolled scope creep.
|
|
158
|
+
- Does each phase Definition of Done include only applicable controls from the specs and quality gates?
|
|
150
159
|
|
|
151
160
|
### Framework Mode
|
|
152
161
|
|
|
@@ -175,7 +184,7 @@ Read `README.md`, relevant `SKILL.md` files, and relevant reference files. Note
|
|
|
175
184
|
- Are there dead ends, loops, or mismatched handoffs?
|
|
176
185
|
|
|
177
186
|
**SA-F07: Persona consistency**
|
|
178
|
-
- Are personas, roles, and assigned skills consistent across README, `
|
|
187
|
+
- Are personas, roles, and assigned skills consistent across README, `meet`, and skill frontmatter?
|
|
179
188
|
- Does any skill name the wrong owner?
|
|
180
189
|
|
|
181
190
|
**SA-F08: Enforcement & order consistency**
|
|
@@ -242,6 +251,11 @@ Findings:
|
|
|
242
251
|
[List of findings]
|
|
243
252
|
|
|
244
253
|
Clean: [list of SA-XX / SA-FXX with no issues]
|
|
254
|
+
|
|
255
|
+
Fix Manifest (only when corrections were requested):
|
|
256
|
+
| Finding | Target document | Exact correction | Validation pair |
|
|
257
|
+
|---|---|---|---|
|
|
258
|
+
| [ID] | `[path]` | [bounded correction] | `[doc A] ↔ [doc B]` |
|
|
245
259
|
```
|
|
246
260
|
|
|
247
261
|
If there are no issues:
|
|
@@ -250,8 +264,9 @@ If there are no issues:
|
|
|
250
264
|
```
|
|
251
265
|
|
|
252
266
|
**Apply fixes:**
|
|
253
|
-
-
|
|
254
|
-
-
|
|
267
|
+
- Audit-only invocation: report only, regardless of `fixMode`; do not offer a mutation gate unless the user requests corrections.
|
|
268
|
+
- Correction requested + `fix-then-report`: apply actionable corrections, validate all affected document pairs, then report.
|
|
269
|
+
- Correction requested + `report-first`: show the summary and shared gate. On approval, resume directly under the Approval Resume Protocol.
|
|
255
270
|
|
|
256
271
|
---
|
|
257
272
|
|