macca-method 1.0.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.
Files changed (56) hide show
  1. package/.agents/legacy-payloads.json +22 -0
  2. package/{skills-lock.json → .agents/macca-lock.json} +4 -2
  3. package/.agents/macca-managed-skills.txt +4 -2
  4. package/.agents/skills/_shared/references/additional-skills.md +30 -0
  5. package/.agents/skills/_shared/references/brainstorm-session.md +42 -11
  6. package/.agents/skills/_shared/references/config-mutation.md +25 -0
  7. package/.agents/skills/_shared/references/finding-format.md +25 -0
  8. package/.agents/skills/_shared/references/fix-mode.md +39 -0
  9. package/.agents/skills/_shared/references/human-loop.md +3 -1
  10. package/.agents/skills/_shared/references/implementation-principles.md +19 -0
  11. package/.agents/skills/_shared/references/invocation-policy.md +39 -0
  12. package/.agents/skills/_shared/references/language-config.md +15 -0
  13. package/.agents/skills/_shared/references/output-ownership.md +4 -2
  14. package/.agents/skills/_shared/references/runtime-config.md +7 -168
  15. package/.agents/skills/_shared/references/skill-catalog.md +34 -0
  16. package/.agents/skills/_shared/scripts/validate-skills.py +106 -4
  17. package/.agents/skills/add-feature/SKILL.md +10 -7
  18. package/.agents/skills/brainstorm-api/SKILL.md +49 -194
  19. package/.agents/skills/brainstorm-api/assets/api.template.md +147 -0
  20. package/.agents/skills/brainstorm-architecture/SKILL.md +22 -127
  21. package/.agents/skills/brainstorm-architecture/assets/architecture.template.md +135 -0
  22. package/.agents/skills/brainstorm-prd/SKILL.md +19 -102
  23. package/.agents/skills/brainstorm-prd/assets/PRD.template.md +106 -0
  24. package/.agents/skills/brainstorm-rules/SKILL.md +17 -151
  25. package/.agents/skills/brainstorm-rules/assets/rules.template.md +127 -0
  26. package/.agents/skills/brainstorm-schema/SKILL.md +49 -115
  27. package/.agents/skills/brainstorm-schema/assets/schema.template.md +109 -0
  28. package/.agents/skills/brainstorm-styleguide/SKILL.md +19 -134
  29. package/.agents/skills/brainstorm-styleguide/assets/StyleGuide.template.md +147 -0
  30. package/.agents/skills/brainstorm-task/SKILL.md +22 -107
  31. package/.agents/skills/brainstorm-task/assets/Task.template.md +113 -0
  32. package/.agents/skills/bug-fix/SKILL.md +45 -54
  33. package/.agents/skills/code-review/SKILL.md +26 -19
  34. package/.agents/skills/code-review/references/review-checklist.md +24 -26
  35. package/.agents/skills/developer/SKILL.md +25 -39
  36. package/.agents/skills/developer/references/close-phase.md +25 -0
  37. package/.agents/skills/developer/references/execute-task.md +69 -0
  38. package/.agents/skills/developer/references/onboarding.md +47 -0
  39. package/.agents/skills/help/SKILL.md +12 -13
  40. package/.agents/skills/meet/SKILL.md +168 -0
  41. package/.agents/skills/quick-dev/SKILL.md +209 -0
  42. package/.agents/skills/release-readiness/SKILL.md +149 -0
  43. package/.agents/skills/spec-audit/SKILL.md +37 -22
  44. package/.agents/skills/spec-compliance/SKILL.md +41 -40
  45. package/.agents/skills/spec-init/SKILL.md +29 -14
  46. package/README.md +253 -170
  47. package/bin/macca-method.js +785 -91
  48. package/flow.webp +0 -0
  49. package/image-macca-method.webp +0 -0
  50. package/package.json +13 -6
  51. package/scripts/run-skill-validator.js +24 -0
  52. package/scripts/test-install.js +398 -0
  53. package/scripts/test-upgrade-legacy.js +107 -0
  54. package/scripts/validate-skill-behavior.js +124 -0
  55. package/.agents/skills/developer/references/execution-workflow.md +0 -322
  56. package/.agents/skills/rapat/SKILL.md +0 -172
@@ -0,0 +1,22 @@
1
+ {
2
+ "1.1.0": {
3
+ "_shared": "fa7d1f79c95bfe33cffd2ea0215e7bc3c01aaf1d5a72d8462a626f5c7ff8396e",
4
+ "add-feature": "dd31b4cbf66e09b313fdfa2d47d05a9625d5b68f265ddf0e2d9264f9d6309f4d",
5
+ "brainstorm-api": "07349d8b7ff9b9dadbb89a5dcfd1bfdba1e40e14b913bf94ef4f33ecc24987fa",
6
+ "brainstorm-architecture": "97193d976c5cecdf5cc12dde4d0b691ecaf4fe1fd23bf8252dbc7e8bdd161359",
7
+ "brainstorm-prd": "ac5c7cd95f33083f030cf2a0b2a1db8a9833fb5da3db11b72e729c96d36d58b0",
8
+ "brainstorm-rules": "4a1ddd8c7e36eb6abd481af276ac6d6eac183431f2eceaf902e7cb33b0eba744",
9
+ "brainstorm-schema": "06f6251ac07583d4118c8bdb88a39c812ba390a81a487b04ddf830f4bd0dd83a",
10
+ "brainstorm-styleguide": "2f0fc76c074097ae94e54e17deda18209c8d6c39053c35150ed953b5cf0af9b7",
11
+ "brainstorm-task": "2c0cb3a51b42ab9a2784f668473535d07bd46eb099768af9de000a42912596c6",
12
+ "bug-fix": "fae7c87df1c50abd0361806e6e4e472827939de87407eaff1485665fa35b1aa6",
13
+ "code-review": "df924d268b3068cfab2f8f3b1046bdbc9341d69cf62b2c7c2f8951ef6a3b0f39",
14
+ "developer": "9e446d83747c86609d7dff34e258d3e83d8b6267fcbb91723f861fbe8311e084",
15
+ "help": "7cb8ebe46069266e56fee5cacbc5c7bc28f68459e8752a1a1ed5a8734c436f06",
16
+ "quick-dev": "4912623f5f7c2697dadaebbd04e950b5afb08301246279fa1eb948aeedcb9371",
17
+ "base64:cmFwYXQ=": "630692d55e8bf515fd0fe263404cce034d66d9b7037dec26df8a3017626a6473",
18
+ "spec-audit": "397a44c512c02ff186ad1855c9040c4b735b8d5f578b69bc78d4831b62e76728",
19
+ "spec-compliance": "0ca7aff9bbdc7109d529dfe4ed6024bacc56df6ee028b92f1d52be6ce931ae04",
20
+ "spec-init": "30466716e0f88e4b8511c7797a95306f1575345c691daf9fa7331726cfcb47b4"
21
+ }
22
+ }
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.0.0",
2
+ "version": "2.0.0",
3
3
  "skills": [
4
4
  "_shared",
5
5
  "add-feature",
@@ -14,7 +14,9 @@
14
14
  "code-review",
15
15
  "developer",
16
16
  "help",
17
- "rapat",
17
+ "meet",
18
+ "quick-dev",
19
+ "release-readiness",
18
20
  "spec-audit",
19
21
  "spec-compliance",
20
22
  "spec-init"
@@ -11,7 +11,9 @@ bug-fix
11
11
  code-review
12
12
  developer
13
13
  help
14
- rapat
14
+ meet
15
+ quick-dev
16
+ release-readiness
15
17
  spec-audit
16
18
  spec-compliance
17
- spec-init
19
+ spec-init
@@ -0,0 +1,30 @@
1
+ # Additional Skills Compatibility
2
+
3
+ Readers of `.agents/developer-config.json` must tolerate all supported `additionalSkills` forms.
4
+
5
+ Canonical writer form:
6
+
7
+ ```json
8
+ {
9
+ "name": "frontend-react-best-practices",
10
+ "purpose": "Use when working on React UI code.",
11
+ "paths": {
12
+ "copilot": ".github/skills/frontend-react-best-practices/SKILL.md",
13
+ "opencode": ".opencode/skills/frontend-react-best-practices/SKILL.md",
14
+ "codex": ".agents/skills/frontend-react-best-practices/SKILL.md"
15
+ }
16
+ }
17
+ ```
18
+
19
+ Readers must also accept:
20
+
21
+ - `path`
22
+ - `githubPath`, `opencodePath`, `claudePath`, `cursorPath`, `windsurfPath`, `geminiPath`, `kiloPath`, `kimiPath`, `codexPath`
23
+
24
+ Path fallback order:
25
+
26
+ 1. `paths[currentHost]`
27
+ 2. `path`
28
+ 3. matching legacy host-specific field
29
+
30
+ Do not remove legacy fields during unrelated config updates.
@@ -1,10 +1,20 @@
1
1
  # Brainstorm Session Policy
2
2
 
3
+ ## Table of Contents
4
+
5
+ 1. Purpose
6
+ 2. Shared Preferences
7
+ 3. Discovery Depth
8
+ 4. Interview Pace
9
+ 5. Recommendations Toggle
10
+ 6. Session Setup Rules
11
+ 7. Recommended Prompt Patterns
12
+
3
13
  ## Purpose
4
14
 
5
15
  This file defines shared session behavior for all `brainstorm-*` skills.
6
16
 
7
- The caller skill must read `runtime-config.md` before this file.
17
+ The caller skill must read `language-config.md` and `config-mutation.md` before using persisted preferences.
8
18
 
9
19
  ## Shared Preferences
10
20
 
@@ -17,13 +27,33 @@ Currently supported fields:
17
27
  {
18
28
  "brainstormPreferences": {
19
29
  "discussionMode": "one-by-one",
20
- "recommendations": true
30
+ "recommendations": true,
31
+ "discoveryDepth": "standard"
21
32
  }
22
33
  }
23
34
  ```
24
35
 
25
36
  Accepted `discussionMode` values: `"one-by-one"`, `"three-at-a-time"`, `"all-at-once"`.
26
37
 
38
+ Accepted `discoveryDepth` values: `"quick"`, `"standard"`, `"critical"`.
39
+
40
+ ## Discovery Depth
41
+
42
+ Depth controls detail, not whether mandatory safety topics are skipped:
43
+
44
+ - `quick` — prototype or small internal experiment; concise answers and fewer follow-ups. Use only when the user explicitly identifies the project as disposable/prototype work.
45
+ - `standard` — default production depth.
46
+ - `critical` — deeper evidence, failure, security, recovery, and operational detail for payments, sensitive/regulated data, multi-tenancy, public uploads/webhooks, privileged administration, high availability, or material financial/legal impact.
47
+
48
+ Determine depth from existing evidence before asking:
49
+
50
+ 1. Start from a saved valid value if present.
51
+ 2. If current evidence shows critical-risk signals, escalate the active depth to `critical` even when a saved value is `quick` or `standard`.
52
+ 3. Select `quick` only from explicit user intent for disposable prototype/internal work.
53
+ 4. Otherwise use `standard`.
54
+
55
+ Announce the selected depth with the saved pacing. The user may override it, but do not add a separate setup question merely to choose depth.
56
+
27
57
  ## Interview Pace
28
58
 
29
59
  Brainstorm skills may batch questions when the user explicitly wants faster progress. This is separate from approval gates in execution skills.
@@ -50,20 +80,21 @@ Use `brainstormPreferences.recommendations` as a persistent preference:
50
80
 
51
81
  When a brainstorming skill starts:
52
82
 
53
- 1. Read `languagePreferences` via `runtime-config.md`.
83
+ 1. Read `languagePreferences` via `language-config.md`.
54
84
  2. Read `brainstormPreferences` if present.
55
85
  3. **Announce the session** before asking anything:
56
- - If preferences are already saved show a short confirmation and allow changes:
57
- ```
58
- This session has [N] topics.
59
- Saved preferences: [pacing] | recommendations: [on/off]
60
- Continue with these settings? Or type the changes you want.
61
- ```
86
+ - If preferences are already saved, announce and proceed in the same response. The user may override them at any time:
87
+ ```
88
+ This session has [N] topics.
89
+ Saved preferences: [pacing] | recommendations: [on/off] | depth: [quick/standard/critical]
90
+ Using these settings. Type different settings at any time.
91
+ ```
62
92
  - If no preferences are saved — ask both before starting:
63
93
  ```
64
94
  This session has [N] topics. Two things before we start:
65
95
  1. Pace: (A) one by one (B) three at a time (C) all at once
66
- 2. Answer recommendations: should the AI suggest answers for each question? (Y/N)
96
+ 2. Answer recommendations: should the AI suggest answers for each question? (Y/N)
97
+ Depth defaults to standard and increases automatically for sensitive systems. Type quick/standard/critical only to override it.
67
98
  ```
68
99
  4. Save the chosen preferences. Preserve all unrelated config fields when writing the update.
69
100
 
@@ -72,7 +103,7 @@ When a brainstorming skill starts:
72
103
  For pace:
73
104
 
74
105
  ```text
75
- This session has [N] topics. Do you want to discuss them one by one or three at a time?
106
+ This session has [N] topics. Choose one by one, three at a time, or all at once.
76
107
  ```
77
108
 
78
109
  For recommendations:
@@ -0,0 +1,25 @@
1
+ # Config Mutation Contract
2
+
3
+ `.agents/developer-config.json` is a stable public runtime contract.
4
+
5
+ Before writing it:
6
+
7
+ 1. Read the existing object if present.
8
+ 2. Merge only the intended fields.
9
+ 3. Preserve every unknown and unrelated field.
10
+ 4. Never replace the whole object unless the file does not exist.
11
+ 5. Prefer additive schema changes. Do not silently rename or repurpose keys.
12
+
13
+ Stable fields include:
14
+
15
+ - `name`
16
+ - `project`
17
+ - `languagePreferences`
18
+ - `developerPreferences.workMode`
19
+ - `developerPreferences.scope`
20
+ - `brainstormPreferences`
21
+ - `additionalSkills`
22
+ - `availableMCPs`
23
+ - `codeReviewPreferences.fixMode`
24
+
25
+ If migration becomes unavoidable, readers must remain backward compatible until the installer can migrate old values automatically.
@@ -0,0 +1,25 @@
1
+ # Shared Finding Format
2
+
3
+ Use exactly these four points for every actionable finding. Do not add a fifth point and do not show code/diffs inside the four points.
4
+
5
+ ```markdown
6
+ #### [Severity] [ID] [Short Title]
7
+
8
+ **Where?**
9
+ [Page or file name only]
10
+
11
+ **What happens if it is not fixed?**
12
+ [Real user/application consequence in clear language]
13
+
14
+ **What happens if it is fixed?**
15
+ [Practical benefit]
16
+
17
+ **Recommended fix**
18
+ [Required logic/flow change, not syntax]
19
+ ```
20
+
21
+ Rules:
22
+
23
+ - Keep severity proportional to evidence and impact.
24
+ - Do not create empty findings for passing checks.
25
+ - Put exact technical targets and validation in the separate fix manifest.
@@ -0,0 +1,39 @@
1
+ # Fix Mode and Approval Resume Contract
2
+
3
+ `codeReviewPreferences.fixMode` is binding for review and remediation workflows.
4
+
5
+ ## Values
6
+
7
+ - Missing or `report-first`: analyze and report all findings, then stop at the gate before editing.
8
+ - `fix-then-report`: apply actionable BLOCKER/MAJOR fixes, validate them, then report. Document-audit skills edit only when corrections were explicitly requested.
9
+
10
+ Announce `[Fix mode: report-first]` or `[Fix mode: fix-then-report]` at the start of a new review. Do not repeat the announcement when resuming an active gate.
11
+
12
+ ## Required Report-First Gate
13
+
14
+ After the full report and fix manifest, print this block verbatim and end the response:
15
+
16
+ ```text
17
+ ---
18
+ [GATE — Fix mode: report-first]
19
+ All findings have been reported. No files were changed.
20
+ Reply "yes" / "fix" / "continue" to apply all fixes,
21
+ or name which findings you want to fix.
22
+ ---
23
+ ```
24
+
25
+ The fix manifest records each actionable finding ID, target, bounded change, and validation.
26
+
27
+ ## Approval Resume
28
+
29
+ This takes precedence over normal routing, startup, identity, onboarding, preflight, and work-mode prompts.
30
+
31
+ 1. Trim and case-fold the next response.
32
+ 2. Exact `yes`, `fix`, or `continue` approves every actionable finding in the immediately preceding report, including actionable MINOR findings.
33
+ 3. Named IDs approve only those findings.
34
+ 4. Resume directly at edits. Do not repeat analysis, the report, startup, preflight, or the same gate.
35
+ 5. Ask again only if the worktree changed materially, a target disappeared, findings conflict, or the implementation becomes destructive or exceeds disclosed scope.
36
+ 6. Run the narrowest relevant validation and one bounded verdict pass: `resolved`, `partial`, or `unresolved`.
37
+ 7. If validation still fails after one repair pass, stop and report evidence.
38
+
39
+ `quick-dev` and other routers must not intercept a reply to an active gate.
@@ -52,4 +52,6 @@ Keep one decision topic per pause.
52
52
 
53
53
  ## Resume Rule
54
54
 
55
- After the user answers, continue from the exact paused step. Do not restart the workflow or ask for the same confirmation again unless the situation changes.
55
+ After the user answers, continue from the exact paused step. Do not restart the workflow or ask for the same confirmation again unless the situation materially changes.
56
+
57
+ An answer to an active gate takes precedence over normal skill startup and routing. For a report-first gate, exact `yes`, `fix`, or `continue` and finding-ID subsets follow the Approval Resume Protocol in `fix-mode.md`. Do not send them through identity setup, preflight, or a second confirmation.
@@ -0,0 +1,19 @@
1
+ # Shared Implementation Principles
2
+
3
+ Before writing code, stop at the first sufficient option:
4
+
5
+ 1. Do not build what is not needed.
6
+ 2. Search for and reuse existing project behavior.
7
+ 3. Prefer the standard library.
8
+ 4. Prefer native platform/framework capability.
9
+ 5. Reuse an installed dependency.
10
+ 6. Use the smallest clear implementation.
11
+ 7. Only then write new reusable code.
12
+
13
+ Additional rules:
14
+
15
+ - Comments explain why, not what.
16
+ - Fix root causes, not symptoms.
17
+ - Prefer deletion and direct code over speculative abstraction.
18
+ - Business behavior or scope changes require user/spec approval; low-risk technical implementation choices do not.
19
+ - A new dependency requires evidence that earlier steps are insufficient and follows the project's dependency policy.
@@ -0,0 +1,39 @@
1
+ # Skill Invocation Policy
2
+
3
+ This catalog documents intent; it does not replace host routing or safety gates.
4
+
5
+ Portable Agent Skills rely on `name` and `description`. OpenCode ignores Copilot-specific invocation fields. Therefore canonical skills keep standard frontmatter and express routing through descriptions and workflow boundaries.
6
+
7
+ | Skill | Policy | Rationale |
8
+ |---|---|---|
9
+ | `add-feature` | explicit-intent | Broad source-of-truth mutation |
10
+ | `brainstorm-prd` | explicit-intent | Long interview and PRD creation |
11
+ | `brainstorm-architecture` | explicit-intent | Strategic technical decisions |
12
+ | `brainstorm-schema` | explicit-intent | Consequential data contract |
13
+ | `brainstorm-api` | explicit-intent | External contract creation |
14
+ | `brainstorm-styleguide` | explicit-intent | UI contract interview |
15
+ | `brainstorm-rules` | explicit-intent | Repository-wide rules |
16
+ | `brainstorm-task` | both | Direct use and `add-feature` orchestration |
17
+ | `spec-init` | explicit-intent | Whole-codebase scan and multi-document generation |
18
+ | `developer` | explicit-implementation-intent | Broad implementation mutation |
19
+ | `quick-dev` | model-auto | Bounded router for small implementation tasks |
20
+ | `bug-fix` | both | Automatic bug/error routing and direct use; the first code change still requires explicit implementation approval from the diagnosis gate |
21
+ | `spec-compliance` | orchestrated | Called by execution/remediation workflows; ad hoc requests remain valid |
22
+ | `code-review` | both | Direct review and post-phase orchestration |
23
+ | `spec-audit` | both | Direct audit and final workflow check |
24
+ | `release-readiness` | both | Direct pre-release request and project-complete handoff |
25
+ | `help` | both | Cheap read-only routing |
26
+ | `meet` | both | Non-mutating meeting intent |
27
+
28
+ Definitions:
29
+
30
+ - `explicit-intent`: activate only when the request clearly asks for that workflow; the user need not type the skill name.
31
+ - `explicit-implementation-intent`: implementation wording such as "implement Phase 2" is sufficient.
32
+ - `model-auto`: choose automatically from context.
33
+ - `orchestrated`: primarily loaded by another skill.
34
+ - `both`: direct and automatic/orchestrated use are valid.
35
+
36
+ Host adapters may improve discoverability but must not carry essential behavior:
37
+
38
+ - Copilot VS Code: `disable-model-invocation: true` for explicit-only; `user-invocable: false` for model/orchestrated-only.
39
+ - OpenCode: use descriptions, skill permissions, and optional custom commands; it has no equivalent portable frontmatter fields.
@@ -0,0 +1,15 @@
1
+ # Language Config Contract
2
+
3
+ Read `.agents/developer-config.json` if it exists.
4
+
5
+ Use:
6
+
7
+ - `languagePreferences.communication.normalized` for chat, reports, prompts, and confirmations.
8
+ - `languagePreferences.documents.normalized` for generated project documents.
9
+
10
+ Accepted reader values:
11
+
12
+ - Indonesian: `indonesian`, `id`
13
+ - English: `english`, `en`
14
+
15
+ If missing, use Indonesian. Never translate file names, traceability IDs, config keys, or code literals.
@@ -14,17 +14,19 @@ This file defines which skill primarily owns each persistent output, so skills d
14
14
  | `project-context/api.md` | `brainstorm-api` | `add-feature`, `spec-init` |
15
15
  | `project-context/StyleGuide.md` | `brainstorm-styleguide` | `add-feature`, `spec-init` |
16
16
  | `project-context/rules.md` | `brainstorm-rules` | `add-feature`, `spec-init` |
17
- | `project-context/Task.md` | `brainstorm-task` | `developer` only updates progress; `add-feature` must hand off to `brainstorm-task` |
17
+ | `project-context/Task.md` | `brainstorm-task` | `developer` updates progress and approved phase deltas; `quick-dev` adds one approved lightweight entry; `add-feature` hands off to `brainstorm-task` |
18
18
  | `project-context/bug-log.md` | `bug-fix` | none |
19
19
  | `project-context/plans/*.md` | `developer` | `add-feature`, `code-review` limited updates per workflow |
20
20
 
21
21
  ## Ownership Rules
22
22
 
23
23
  - `help` explains and routes. It does not create project spec files.
24
- - `rapat` facilitates decisions and maps them to target artifacts. It does not replace the primary owner of spec files.
24
+ - `meet` facilitates one structured persona round and maps decisions to target artifacts. It does not replace the primary owner of spec files.
25
25
  - `spec-audit` and `spec-compliance` report findings. They do not rewrite spec artifacts unless the user explicitly asks for follow-up fix work.
26
26
  - `code-review` reports code issues. It does not own spec documents.
27
27
  - `spec-init` is the bootstrap exception for existing codebases without specs.
28
+ - `bug-fix` may add one narrowly scoped regression guard to a spec or rule only after user confirmation; larger document changes return to the primary owner.
29
+ - `release-readiness` is report-only and owns no persistent project artifact unless the user explicitly requests a saved copy of its report.
28
30
 
29
31
  ## Drift Rule
30
32
 
@@ -1,171 +1,10 @@
1
- # Runtime Config Contract
1
+ # Runtime Config Reference Index
2
2
 
3
- ## Table of Contents
3
+ This compatibility index replaces the former monolithic runtime contract. Skills should load only the references needed for their current workflow:
4
4
 
5
- 1. Purpose
6
- 2. Required Read Order
7
- 3. Language Preferences
8
- 4. Stable Shared Fields
9
- 5. Fix Mode Contract
10
- 6. `additionalSkills` Compatibility
11
- 7. Mutation Rules
5
+ - Language selection: `language-config.md`
6
+ - Safe config writes and stable fields: `config-mutation.md`
7
+ - Review gates and approval resume: `fix-mode.md`
8
+ - Additional skill path compatibility: `additional-skills.md`
12
9
 
13
- ## Purpose
14
-
15
- This file is the source of truth for how MACCA skills read and update `.agents/developer-config.json`.
16
-
17
- Treat `developer-config.json` as a stable public contract. Do not make breaking schema changes that force existing users to edit the file manually after an upgrade.
18
-
19
- ## Required Read Order
20
-
21
- Before any user-facing output or config mutation:
22
-
23
- 1. Read `.agents/developer-config.json` if it exists.
24
- 2. Preserve unknown fields when writing updates.
25
- 3. Merge changes into the existing object. Never replace the whole file unless the file does not exist yet.
26
-
27
- ## Language Preferences
28
-
29
- Use this field if present:
30
-
31
- ```json
32
- {
33
- "languagePreferences": {
34
- "communication": {
35
- "raw": "Indonesian",
36
- "normalized": "indonesian"
37
- },
38
- "documents": {
39
- "raw": "Indonesian",
40
- "normalized": "indonesian"
41
- }
42
- }
43
- }
44
- ```
45
-
46
- ### Accepted Compatibility Values
47
-
48
- Readers must accept long and short normalized forms:
49
-
50
- - Indonesian: `indonesian`, `id`
51
- - English: `english`, `en`
52
-
53
- Writers should preserve known values when possible. If a skill must write a new normalized value, use the installer's canonical form unless the installer is updated to a new canonical form first.
54
-
55
- ### Output Rules
56
-
57
- - Use `languagePreferences.communication.normalized` for chat output, reports, prompts, and confirmations.
58
- - Use `languagePreferences.documents.normalized` for generated project documents.
59
- - Never translate file names, traceability IDs, config keys, or code literals.
60
-
61
- ## Stable Shared Fields
62
-
63
- These fields are part of the stable contract and must remain backward compatible:
64
-
65
- - `name`
66
- - `project`
67
- - `languagePreferences`
68
- - `developerPreferences.workMode`
69
- - `developerPreferences.scope`
70
- - `brainstormPreferences`
71
- - `additionalSkills`
72
- - `availableMCPs`
73
- - `codeReviewPreferences.fixMode`
74
-
75
- ## Fix Mode Contract
76
-
77
- `codeReviewPreferences.fixMode` is a **binding setting for review/remediation skills**.
78
- `developer`, `bug-fix`, `spec-compliance`, `code-review`, and `spec-audit` MUST follow this field before they fix findings or change files in a review/remediation workflow.
79
-
80
- Brainstorming/document-generation skills such as `brainstorm-*`, `add-feature`, and `spec-init` are NOT required to use `fixMode`, because they do not run a report-findings-then-fix workflow.
81
-
82
- ### Read and Announce at Startup
83
-
84
- Every covered review/remediation skill must read `fixMode` during Shared Runtime Setup — **before any analysis or action begins**:
85
-
86
- 1. Read `codeReviewPreferences.fixMode` from `developer-config.json`.
87
- 2. If it is missing, treat it as `"report-first"` — do not ask the user.
88
- 3. Announce it at the top of the output: `[Fix mode: report-first]` or `[Fix mode: fix-then-report]`.
89
-
90
- ### Values
91
-
92
- | Value | Behavior |
93
- |-------|----------|
94
- | `"report-first"` | **Default.** Run all analysis. Present the full findings report. Show the gate prompt below. **End the response.** Wait for user confirmation in the next message before touching any files. |
95
- | `"fix-then-report"` | Automatically apply BLOCKER/MAJOR fixes. Present the full report at the end. |
96
-
97
- ### Required Gate Prompt (`report-first` only)
98
-
99
- After presenting all findings, the skill must display this block **verbatim**, then **end the response immediately**:
100
-
101
- ```
102
- ---
103
- [GATE — Fix mode: report-first]
104
- All findings have been reported. No files were changed.
105
- Reply "yes" / "fix" / "continue" to apply all fixes,
106
- or name which findings you want to fix.
107
- ---
108
- ```
109
-
110
- **Critical rule:** DO NOT apply any fixes, edit any files, run any sub-skill, or add follow-up text in the same response. The response ends at the gate prompt. Act only after the user's next message confirms.
111
-
112
- ### Default
113
-
114
- If `codeReviewPreferences.fixMode` is missing from `developer-config.json`, always treat it as `"report-first"`. Do not ask the user — just use the default and announce it.
115
-
116
- ## `additionalSkills` Compatibility
117
-
118
- > **Internal contract only.** These forms exist for backward compatibility across different AI hosts (Copilot, OpenCode, Codex, etc.), each of which stores skill files in different paths. Users do not choose the form — skills always write the canonical extensible form when saving. Readers must tolerate all three forms.
119
-
120
- Readers must support all of these forms:
121
-
122
- ### Legacy Single-Path Form
123
-
124
- ```json
125
- {
126
- "name": "frontend-react-best-practices",
127
- "path": ".agents/skills/frontend-react-best-practices/SKILL.md",
128
- "purpose": "Use when working on React UI code."
129
- }
130
- ```
131
-
132
- ### Legacy Host-Specific Form
133
-
134
- ```json
135
- {
136
- "name": "frontend-react-best-practices",
137
- "opencodePath": ".opencode/skill/frontend-react-best-practices/SKILL.md",
138
- "githubPath": ".github/skills/frontend-react-best-practices/SKILL.md",
139
- "purpose": "Use when working on React UI code."
140
- }
141
- ```
142
-
143
- ### Canonical Extensible Form
144
-
145
- ```json
146
- {
147
- "name": "frontend-react-best-practices",
148
- "purpose": "Use when working on React UI code.",
149
- "paths": {
150
- "copilot": ".github/skills/frontend-react-best-practices/SKILL.md",
151
- "opencode": ".opencode/skill/frontend-react-best-practices/SKILL.md",
152
- "codex": ".agents/skills/frontend-react-best-practices/SKILL.md"
153
- }
154
- }
155
- ```
156
-
157
- ### Read Fallback Order
158
-
159
- When selecting a skill path for the current host, use this order:
160
-
161
- 1. `paths[currentHost]`
162
- 2. `path`
163
- 3. legacy host-specific fields such as `githubPath`, `opencodePath`, `claudePath`, `cursorPath`, `windsurfPath`, `geminiPath`, `kiloPath`, `kimiPath`, `codexPath`
164
-
165
- Do not remove legacy fields during unrelated updates.
166
-
167
- ## Mutation Rules
168
-
169
- - Additive changes only by default.
170
- - Do not silently rename or repurpose existing keys.
171
- - If a future migration is unavoidable, skills must remain tolerant readers until upgrade tooling can migrate old configs automatically.
10
+ Do not load every contract by default. Existing external references to `runtime-config.md` remain valid through this index, but canonical MACCA skills should point to the narrower file directly.
@@ -0,0 +1,34 @@
1
+ # MACCA Skill Contract Catalog
2
+
3
+ Compact framework-audit index. This is not a replacement for each `SKILL.md`; it identifies which full files need inspection when a conflict is suspected.
4
+
5
+ | Skill | Invocation | Reads | Writes / Output | Primary Handoff |
6
+ |---|---|---|---|---|
7
+ | `brainstorm-prd` | explicit-intent | scope/config, user discovery | `PRD.md` | `brainstorm-architecture` |
8
+ | `brainstorm-architecture` | explicit-intent | PRD | `architecture.md` | schema/API/style/rules |
9
+ | `brainstorm-schema` | explicit-intent | PRD, architecture | `schema.md` | `brainstorm-api` |
10
+ | `brainstorm-api` | explicit-intent | PRD, architecture, schema when applicable | `api.md` | style/rules/task |
11
+ | `brainstorm-styleguide` | explicit-intent | PRD, architecture | `StyleGuide.md` | rules/task |
12
+ | `brainstorm-rules` | explicit-intent | architecture and applicable domain specs | `rules.md` | `brainstorm-task` |
13
+ | `brainstorm-task` | both | applicable specs | `Task.md` | `developer` |
14
+ | `add-feature` | explicit-intent | all existing specs | approved spec deltas; delegates Task | `developer` |
15
+ | `spec-init` | explicit-intent | existing code/config/evidence | bootstrap specs, not Task | audit/task |
16
+ | `developer` | explicit-implementation-intent | Task and relevant specs | code, Task progress, plans | compliance/review |
17
+ | `quick-dev` | model-auto | relevant specs | bounded code and Task entry | compliance/review |
18
+ | `bug-fix` | both | bug log, relevant code/specs | approved fix, prevention, confirmed bug log | compliance/review |
19
+ | `spec-compliance` | orchestrated | code and applicable specs | report; approved fixes | code-review |
20
+ | `code-review` | both | diff/code, rules, architecture, applicable contracts | report; approved fixes | phase completion |
21
+ | `spec-audit` | both | spec pairs or framework catalog | report; explicitly requested corrections | owning skills |
22
+ | `release-readiness` | both | existing quality/release evidence | report only | release owner |
23
+ | `help` | both | project status/config/catalog | routing report | selected skill |
24
+ | `meet` | both | agenda-relevant evidence | one-round discussion report | owning skills |
25
+
26
+ Framework invariants:
27
+
28
+ - Persistent artifact ownership comes from `output-ownership.md`.
29
+ - Scope comes from `scope-rules.md`.
30
+ - Review gates come from `fix-mode.md`.
31
+ - Invocation intent comes from `invocation-policy.md`.
32
+ - Brainstorm pacing/depth comes from `brainstorm-session.md`.
33
+ - `release-readiness`, `help`, and `meet` are report-only.
34
+ - Execution order is `developer/quick-dev/bug-fix` → `spec-compliance` → `code-review`.