macca-method 1.0.0 → 1.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.
@@ -11,7 +11,8 @@ bug-fix
11
11
  code-review
12
12
  developer
13
13
  help
14
+ quick-dev
14
15
  rapat
15
16
  spec-audit
16
17
  spec-compliance
17
- spec-init
18
+ spec-init
@@ -0,0 +1,213 @@
1
+ ---
2
+ name: quick-dev
3
+ description: Execute a single focused task directly from user instruction — no phase reading, no plan file. Shows a pre-flight summary, resolves ambiguities upfront, codes, updates Task.md, and runs full spec-compliance + code-review. Use for small targeted changes (color fixes, layout tweaks, copy edits, minor logic adjustments) where the developer phase ceremony is unnecessary overhead. Do NOT use for new features, migrations, or multi-file refactors.
4
+ persona: "Firdaus"
5
+ persona_role: "Expert Developer"
6
+ ---
7
+
8
+ # Quick Dev
9
+
10
+ ## Shared Runtime Setup
11
+
12
+ Before any output:
13
+
14
+ 1. Read `../_shared/references/runtime-config.md`.
15
+ 2. Read `../_shared/references/human-loop.md`.
16
+ 3. 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]`.
17
+ 4. Use `languagePreferences.communication.normalized` for chat.
18
+ 5. Use `languagePreferences.documents.normalized` for generated artifacts.
19
+
20
+ ---
21
+
22
+ ## Persona
23
+
24
+ Run as `@Firdaus` (Expert Developer). Use the shared persona profile in `../_shared/references/personas.md`.
25
+
26
+ **Code Writing Principles:**
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.
39
+
40
+ ---
41
+
42
+ ## Complexity Threshold — When to Refuse
43
+
44
+ If the request meets ANY of these, do NOT proceed. Redirect to `developer`:
45
+
46
+ - Touches more than 5 files
47
+ - Requires a database migration
48
+ - Adds a new API endpoint
49
+ - Adds a new primary feature or behavior not yet in `Task.md`
50
+ - Requires creating or heavily rewriting a spec document
51
+
52
+ > "This task is too large for `quick-dev`. Use `developer` instead so it stays properly phased and traced."
53
+
54
+ ---
55
+
56
+ ## Step 0 — Identity
57
+
58
+ Read `.agents/developer-config.json`. Extract `name` and `project`.
59
+
60
+ **If both exist:**
61
+ > "Back again, [name]. **Firdaus** here — ready for a quick fix on **[project]**. What needs doing?"
62
+
63
+ **If name exists, project empty:**
64
+ > "Back again, [name]. **Firdaus** here — ready. What needs doing?"
65
+
66
+ **If name missing:**
67
+ > "Hi. I am **Firdaus**. Before we start:
68
+ > 1. What is your name?
69
+ > 2. What is the project name?"
70
+
71
+ After the user answers, create or update `.agents/developer-config.json` with `name` and `project`. Preserve all other fields.
72
+
73
+ ---
74
+
75
+ ## Step 0b — Additional Skills & MCP
76
+
77
+ Read `additionalSkills` and `availableMCPs` from `.agents/developer-config.json`.
78
+
79
+ - **Both exist:** show `[Skills: N registered] [MCPs: ...]` on one line. Tell the user to correct now if needed.
80
+ - **Either missing:** ask once using the same questions as `developer` Step 0b in `../developer/references/execution-workflow.md`. Save and preserve other fields.
81
+
82
+ ---
83
+
84
+ ## Step 0c — Developer Scope
85
+
86
+ Read `developerPreferences.scope` from `.agents/developer-config.json`.
87
+
88
+ - **Exists:** show `[Scope: frontend / backend / fullstack]`. Tell the user to correct now if needed.
89
+ - **Missing:** ask once using the same question as `developer` Step 0c. Save answer.
90
+
91
+ ---
92
+
93
+ ## Step 1 — Pre-flight Summary
94
+
95
+ Parse the user's request. Identify specs and likely files from **context and spec documents only** — do NOT scan the codebase broadly here.
96
+
97
+ Show:
98
+
99
+ ```
100
+ Quick Dev — Pre-flight
101
+ ───────────────────────
102
+ Task : [concise interpretation of the request]
103
+
104
+ Specs : [specs to read, e.g. rules.md + architecture.md + StyleGuide.md]
105
+
106
+ Files :
107
+ ~ [path/file] (modify)
108
+ ~ [path/file] (verify)
109
+
110
+ Assumptions (will proceed unless corrected):
111
+ [~] [assumption 1]
112
+ [~] [assumption 2]
113
+
114
+ Need confirmation before proceeding: ← omit entire block if none
115
+ [?] [blocking question — short]
116
+ ```
117
+
118
+ **Rules:**
119
+ - Omit "Need confirmation" block entirely if there are no blocking ambiguities.
120
+ - Non-blocking ambiguities go under "Assumptions" as `[~]` — not as questions.
121
+ - 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
+ - Wait for the user to confirm or correct before proceeding to Step 2.
123
+
124
+ ---
125
+
126
+ ## Step 2 — Read Relevant Specs
127
+
128
+ Verify `project-context/` exists.
129
+ - `architecture.md` → **required**. If missing, stop and ask the user to run `brainstorm-architecture` first.
130
+ - Others → optional. If missing and needed, the gap was already noted in Step 1.
131
+
132
+ Read only what the task needs:
133
+
134
+ | Condition | Read |
135
+ |---|---|
136
+ | Always | `project-context/rules.md`, `project-context/architecture.md` |
137
+ | Touches database / models | + `project-context/schema.md` |
138
+ | Touches API / service endpoints | + `project-context/api.md` |
139
+ | Touches UI / pages / components | + `project-context/StyleGuide.md` |
140
+ | Feature or requirement is unclear | + `project-context/PRD.md` |
141
+
142
+ Scan `[FORBIDDEN]` in `rules.md` before any coding.
143
+
144
+ **Scope enforcement** — use `architecture.md` as the primary boundary:
145
+
146
+ | Scope | Restriction |
147
+ |---|---|
148
+ | `frontend` | Do not touch backend files |
149
+ | `backend` | Do not touch frontend files |
150
+ | `fullstack` or missing | No restriction |
151
+
152
+ ---
153
+
154
+ ## Step 3 — Execute
155
+
156
+ Read `../developer/references/execution-workflow.md` and follow **Step 3 only** (3a through 3e):
157
+
158
+ - **3a** — Understand the task. Check if it touches anything not in `project-context/`.
159
+ - **3b** — Clarify if still ambiguous. Most ambiguities should already be resolved in Step 1.
160
+ - **3b.5** — I/O contract for non-trivial functions.
161
+ - **3c** — Code: Additional Skills → MCP → YAGNI Ladder. In that order, no skipping.
162
+ - **3c.5** — [SELF-REVIEW].
163
+ - **3c.6** — Validate.
164
+
165
+ **Scope delta — no plan file:** if the task touches something outside `project-context/`, follow the same approved scope delta flow as `developer` Step 3a, but record the delta directly in the `Task.md` entry created in Step 4 (not in a plan file).
166
+
167
+ ---
168
+
169
+ ## Step 4 — Update Task.md
170
+
171
+ Do a lightweight scan of `Task.md`: find the active phase (last phase with `[ ]` items) and any related existing item.
172
+
173
+ | Condition | Action |
174
+ |---|---|
175
+ | Related item found, `[ ]` | Mark `[x]`, add a brief implementation note if a decision was made |
176
+ | Related item found, `[x]` | Add a sub-note describing the refinement |
177
+ | No related item found | Append to active phase as new `[x]` with tag `(quick-fix: YYYY-MM-DD)` |
178
+
179
+ If a scope delta exists, record it inline:
180
+
181
+ ```md
182
+ [x] [task description] (quick-fix: YYYY-MM-DD)
183
+ > Delta: [what was added/changed] — pending sync to [spec-doc].md
184
+ ```
185
+
186
+ ---
187
+
188
+ ## Step 5 — Quality Gates
189
+
190
+ 1. Run `spec-compliance`. Follow `fixMode` from Shared Runtime Setup.
191
+ 2. Run `code-review`. Follow `fixMode` from Shared Runtime Setup.
192
+
193
+ Both follow the same gate behavior as `developer` Step 4. Do not proceed to Step 6 until both pass.
194
+
195
+ ---
196
+
197
+ ## Step 6 — Final Report
198
+
199
+ ```
200
+ Quick Dev — Done
201
+ ─────────────────
202
+ Task : [task description]
203
+ Files : [files changed]
204
+ Validated : [command / check and result]
205
+
206
+ Assumptions used:
207
+ [~] [assumption that was applied]
208
+
209
+ Remaining ambiguities: ← omit if none
210
+ [!] [unresolved item worth noting for follow-up]
211
+ ```
212
+
213
+ Do not offer a next phase. Do not suggest continuing. Wait for the user's next instruction.
package/README.md CHANGED
@@ -62,8 +62,9 @@ MACCA uses **skills** — structured instructions given to AI to perform specifi
62
62
  ┌──────────────────────────────────────────────────────┐
63
63
  │ EXECUTION PHASE │
64
64
  │ │
65
- developer (per Task.md phase)
66
- (after each phase)
65
+ developer (per Task.md phase)
66
+ quick-dev (single focused task)
67
+ │ ↓ (after each) │
67
68
  │ spec-compliance → code-review │
68
69
  └──────────────────────────────────────────────────────┘
69
70
  ```
@@ -400,6 +401,75 @@ For each task:
400
401
 
401
402
  ---
402
403
 
404
+ <details>
405
+ <summary><strong>quick-dev</strong> — Execute a single focused task directly, without phase ceremony</summary>
406
+
407
+ **Persona:** @Firdaus — Expert Developer
408
+
409
+ **Called when:** A small, targeted change is needed (color fix, layout tweak, copy edit, minor logic adjustment) where reading Task.md phases and creating plan files is unnecessary overhead. Full quality gates still run.
410
+
411
+ **Not for:** new features, database migrations, new API endpoints, or changes touching more than 5 files — use `developer` instead.
412
+
413
+ **Full workflow:**
414
+
415
+ **Step 0 — Identity**
416
+ Same as `developer`. Reads `.agents/developer-config.json`, greets by name and project.
417
+
418
+ **Step 0b & 0c — Additional Skills, MCP, Scope**
419
+ Same as `developer`. Reads from config if already set — does not ask again.
420
+
421
+ **Step 1 — Pre-flight summary** *(unique to quick-dev)*
422
+
423
+ Before any code is written, AI shows:
424
+ ```
425
+ Quick Dev — Pre-flight
426
+ ───────────────────────
427
+ Task : [concise interpretation]
428
+ Specs : [specs to read]
429
+ Files :
430
+ ~ [path/file] (modify)
431
+ Assumptions (will proceed unless corrected):
432
+ [~] [assumption]
433
+ Need confirmation before proceeding: ← omit if none
434
+ [?] [blocking question]
435
+ ```
436
+ - Non-blocking ambiguities go under "Assumptions", not as questions
437
+ - Missing specs (e.g. no `StyleGuide.md` but task touches UI) are flagged here
438
+ - Waits for user confirmation before proceeding
439
+
440
+ **Step 2 — Read relevant specs**
441
+ Same table as `developer` — reads only what the task needs.
442
+
443
+ **Step 3 — Execute**
444
+ Same as `developer` Step 3 (understand → clarify → I/O contract → code → [SELF-REVIEW] → validate). YAGNI Ladder is mandatory.
445
+
446
+ **Step 4 — Update Task.md**
447
+
448
+ | Condition | Action |
449
+ |---|---|
450
+ | Related item found, `[ ]` | Mark `[x]`, add brief note |
451
+ | Related item found, `[x]` | Add sub-note about the refinement |
452
+ | No related item | Append to active phase as `[x]` with tag `(quick-fix: YYYY-MM-DD)` |
453
+
454
+ **Step 5 — Quality gates**
455
+ Runs full `spec-compliance` then `code-review`. Both follow `fixMode` from config.
456
+
457
+ **Step 6 — Final report**
458
+ ```
459
+ Quick Dev — Done
460
+ ─────────────────
461
+ Task : [description]
462
+ Files : [changed files]
463
+ Validated : [check and result]
464
+ Assumptions used: [~] ...
465
+ Remaining ambiguities: ← omit if none
466
+ [!] ...
467
+ ```
468
+
469
+ </details>
470
+
471
+ ---
472
+
403
473
  <details>
404
474
  <summary><strong>spec-compliance</strong> — Verify code against all spec documents</summary>
405
475
 
@@ -644,7 +714,7 @@ Mode B — Guided Generate: one document → you review → confirm → continue
644
714
  | **@Galbi** | Project Manager | `brainstorm-prd`, `brainstorm-task`, `add-feature`, `help`, `rapat` |
645
715
  | **@Fachri** | Tech Lead | `brainstorm-architecture`, `brainstorm-api`, `brainstorm-schema`, `brainstorm-rules`, `spec-init`, `spec-audit`, `spec-compliance`, `code-review` |
646
716
  | **@Akram** | UI/UX Designer | `brainstorm-styleguide` |
647
- | **@Firdaus** | Expert Developer | `developer` |
717
+ | **@Firdaus** | Expert Developer | `developer`, `quick-dev` |
648
718
  | **@Ikhsan** | Debugger | `bug-fix` |
649
719
 
650
720
  > **Persona Rule:** Do not swap the persona assigned to a skill. Its instructions, tone, and responsibilities are designed for that role.
@@ -693,6 +763,7 @@ Step 7: Start coding
693
763
  → Per task: code → validate → [SELF-REVIEW]
694
764
  → Per phase: spec-compliance → code-review → next phase
695
765
  → If all tasks are complete but small technical changes, hardening, optimization, or maintenance remain: keep using `developer` (post-task / maintenance mode)
766
+ → For small targeted fixes (color, layout, copy, minor logic): use `quick-dev` directly instead of going through a full phase
696
767
  ```
697
768
 
698
769
  > Not sure where to start? Call `help`.
@@ -772,51 +843,35 @@ What happens:
772
843
 
773
844
  ## 8. Installation & Usage
774
845
 
775
- **Prerequisite:** GitHub Copilot enabled in VS Code (or another supported AI tool).
846
+ **Prerequisites:** Node.js 18+ with `npx`, plus GitHub Copilot in VS Code (or another supported AI tool).
776
847
 
777
848
  ### Installation
778
849
 
779
- **Option A — `macca-method` CLI**
850
+ Use `macca-method` if you want the full bootstrap: skill files, interactive AI-tool selection, `developer-config.json`, and language preferences.
780
851
 
781
- Use this if you want the full bootstrap: skill files, interactive AI-tool selection, `developer-config.json`, and language preferences.
852
+ This is the supported cross-platform path for Windows, Linux, and macOS.
782
853
 
783
854
  ```bash
784
- npx macca-method install
855
+ npx macca-method@latest install
785
856
  ```
786
857
 
787
858
  The CLI asks you to choose the AI tool, then prompts for the developer name, project name, and language preferences.
788
859
 
789
- For local testing from a repository clone before the npm package is published, run:
860
+ To see the supported AI tool names before installing, run:
790
861
 
791
862
  ```bash
792
- node bin/macca-method.js install
863
+ npx macca-method@latest --list-tools
793
864
  ```
794
865
 
795
866
  You can also do unattended installs, for example:
796
867
 
797
868
  ```bash
798
- npx macca-method install --tool github-copilot --tool codex --yes
799
- ```
800
-
801
- **Option B — bundled MACCA installer**
802
-
803
- Use this if you prefer a curl/PowerShell bootstrap without going through npm.
804
-
805
- **Linux / Mac**
806
- ```bash
807
- curl -fsSL https://raw.githubusercontent.com/firdaus12p/MACCA-METHOD/main/install.sh | bash
808
- ```
809
-
810
- **Windows (PowerShell)**
811
- ```powershell
812
- irm https://raw.githubusercontent.com/firdaus12p/MACCA-METHOD/main/install.ps1 | iex
869
+ npx macca-method@latest install --tool github-copilot --tool codex --yes
813
870
  ```
814
871
 
815
- The bundled installer shows an interactive selector to choose the AI tool, then asks for the developer name, project name, and language preferences.
872
+ If you only want to install the skills without the MACCA bootstrap files, use the shared `skills` CLI instead.
816
873
 
817
- **Option C — `skills` CLI**
818
-
819
- Use this if you only want to install the MACCA skills through the shared Agent Skills ecosystem.
874
+ **Alternative — `skills` CLI**
820
875
 
821
876
  ```bash
822
877
  npx skills add firdaus12p/MACCA-METHOD --list
@@ -825,33 +880,17 @@ npx skills add firdaus12p/MACCA-METHOD --skill '*' -a github-copilot
825
880
 
826
881
  You can swap `github-copilot` with another supported agent such as `claude-code`, `cursor`, `codex`, `opencode`, `windsurf`, or `gemini-cli`.
827
882
 
828
- > `npx skills add` installs the skills only. It does **not** create `.agents/developer-config.json`, `.agents/macca-tools.txt`, or prompt for developer/project/language setup. Use the MACCA installer above if you need that bootstrap.
883
+ > `npx skills add` installs the skills only. It does **not** create `.agents/developer-config.json`, `.agents/macca-tools.txt`, `.agents/macca-managed-skills.txt`, or prompt for developer/project/language setup. Use the MACCA installer above if you need that bootstrap.
829
884
 
830
885
  ### Update to the Latest Version
831
886
 
832
- **Preferred**
833
-
834
887
  ```bash
835
- npx macca-method upgrade
888
+ npx macca-method@latest upgrade
836
889
  ```
837
890
 
838
- For local testing from a repository clone before the npm package is published, run:
839
-
840
- ```bash
841
- node bin/macca-method.js upgrade
842
- ```
891
+ Run this whenever you want to refresh an existing MACCA setup to the newest published skills.
843
892
 
844
- **Fallback bundled upgrade script**
845
-
846
- **Linux / Mac**
847
- ```bash
848
- curl -fsSL https://raw.githubusercontent.com/firdaus12p/MACCA-METHOD/main/upgrade.sh | bash
849
- ```
850
-
851
- **Windows (PowerShell)**
852
- ```powershell
853
- irm https://raw.githubusercontent.com/firdaus12p/MACCA-METHOD/main/upgrade.ps1 | iex
854
- ```
893
+ The updater uses the MACCA files inside `.agents/` to know which installed skill folders should be refreshed.
855
894
 
856
895
  > `project-context/` and `developer-config.json` are **not touched** during upgrade.
857
896
 
@@ -865,31 +904,24 @@ Use the skill help
865
904
 
866
905
  ### Folder Structure
867
906
 
868
- The example below reflects `npx macca-method install` and the bundled MACCA installer. If you use `npx skills add`, the destination folders follow the `skills` CLI defaults for the selected agent.
907
+ The example below reflects `npx macca-method@latest install`. It creates shared MACCA files in `.agents/`, a `skills-lock.json` file at the project root, and one or more agent-specific skill folders based on the AI tools you selected.
869
908
 
870
909
  ```
871
910
  your-project/
872
911
  ├── .agents/
873
912
  │ ├── developer-config.json ← shared config across skills
874
- └── macca-tools.txt ← tools selected during install
913
+ ├── macca-tools.txt ← tools selected during install
914
+ │ ├── macca-managed-skills.txt ← internal manifest used by MACCA updates
915
+ │ └── skills/ ← if Codex (OpenAI) is selected
875
916
 
876
917
  ├── .github/skills/ ← if GitHub Copilot is selected
877
- ├── add-feature/
878
- ├── brainstorm-api/
879
- ├── brainstorm-architecture/
880
- ├── brainstorm-prd/
881
- ├── brainstorm-rules/
882
- ├── brainstorm-schema/
883
- ├── brainstorm-styleguide/
884
- │ ├── brainstorm-task/
885
- │ ├── bug-fix/
886
- │ ├── code-review/
887
- │ ├── developer/
888
- │ ├── help/
889
- │ ├── rapat/
890
- │ ├── spec-audit/
891
- │ ├── spec-compliance/
892
- │ └── spec-init/
918
+ ├── .cursor/skills/ ← if Cursor is selected
919
+ ├── .claude/skills/ ← if Claude Code is selected
920
+ ├── .windsurf/skills/ ← if Windsurf is selected
921
+ ├── .gemini/skills/ ← if Gemini CLI is selected
922
+ ├── .opencode/skill/ ← if OpenCode is selected
923
+ ├── .kilo/skills/ ← if Kilo Code is selected
924
+ ├── skills-lock.json ← skill manifest/version lock used by MACCA
893
925
 
894
926
  ├── project-context/
895
927
  │ ├── PRD.md
@@ -906,6 +938,8 @@ your-project/
906
938
  └── ... (your project code)
907
939
  ```
908
940
 
941
+ Each installed skills folder contains `_shared` plus these MACCA skills: `add-feature`, `brainstorm-api`, `brainstorm-architecture`, `brainstorm-prd`, `brainstorm-rules`, `brainstorm-schema`, `brainstorm-styleguide`, `brainstorm-task`, `bug-fix`, `code-review`, `developer`, `help`, `rapat`, `spec-audit`, `spec-compliance`, and `spec-init`.
942
+
909
943
  | AI Tool | Skills Folder |
910
944
  |---------|---------------|
911
945
  | GitHub Copilot | `.github/skills/` |
@@ -272,9 +272,9 @@ function printHelp() {
272
272
  "MACCA CLI",
273
273
  "",
274
274
  "Usage:",
275
- " npx macca-method install [options]",
276
- " npx macca-method upgrade [options]",
277
- " npx macca-method --list-tools",
275
+ " npx macca-method@latest install [options]",
276
+ " npx macca-method@latest upgrade [options]",
277
+ " npx macca-method@latest --list-tools",
278
278
  "",
279
279
  "Install options:",
280
280
  " -t, --tool <name> Repeatable. Also accepts comma-separated values.",
@@ -286,9 +286,9 @@ function printHelp() {
286
286
  " --document-language <value>",
287
287
  "",
288
288
  "Examples:",
289
- " npx macca-method install",
290
- " npx macca-method install --tool github-copilot --tool codex --yes",
291
- " npx macca-method upgrade",
289
+ " npx macca-method@latest install",
290
+ " npx macca-method@latest install --tool github-copilot --tool codex --yes",
291
+ " npx macca-method@latest upgrade",
292
292
  ""
293
293
  ].join("\n")
294
294
  );
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "macca-method",
3
- "version": "1.0.0",
3
+ "version": "1.1.0",
4
4
  "description": "CLI installer for MACCA AI spec-driven development skills.",
5
5
  "license": "MIT",
6
6
  "scripts": {
7
- "test:install": "bash ./test-install.sh",
8
- "test:install:published": "bash ./test-install.sh --published"
7
+ "test:install": "node ./scripts/test-install.js",
8
+ "test:install:published": "node ./scripts/test-install.js --published"
9
9
  },
10
10
  "bin": {
11
11
  "macca-method": "bin/macca-method.js"
package/skills-lock.json CHANGED
@@ -14,6 +14,7 @@
14
14
  "code-review",
15
15
  "developer",
16
16
  "help",
17
+ "quick-dev",
17
18
  "rapat",
18
19
  "spec-audit",
19
20
  "spec-compliance",