@jstn-sdk/ma 0.1.0 → 0.1.2

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 (43) hide show
  1. package/.codex/prompts/enforcement.md +1 -1
  2. package/.codex/prompts/onboarding.md +5 -5
  3. package/README.md +29 -29
  4. package/bin/ma.js +13 -1
  5. package/docs/README.md +2 -1
  6. package/docs/getting-started.md +10 -8
  7. package/docs/installed-sdk.md +60 -0
  8. package/docs/onboarding.md +3 -3
  9. package/docs/qa/{release-readiness-0.1.0.md → release-readiness-0.1.2.md} +25 -8
  10. package/docs/release-spec.md +9 -9
  11. package/docs/skills.md +31 -3
  12. package/package.json +5 -4
  13. package/plugins/meta-architect/.app.json +1 -1
  14. package/plugins/meta-architect/.codex-plugin/plugin.json +2 -2
  15. package/plugins/meta-architect/.mcp.json +1 -1
  16. package/plugins/meta-architect/README.md +2 -2
  17. package/plugins/meta-architect/skills/arch/agents/openai.yaml +2 -2
  18. package/plugins/meta-architect/skills/build/agents/openai.yaml +2 -2
  19. package/plugins/meta-architect/skills/flow/agents/openai.yaml +2 -2
  20. package/plugins/meta-architect/skills/meta-architect/agents/openai.yaml +2 -2
  21. package/plugins/meta-architect/skills/meta-architect/references/core-release-rules.md +1 -1
  22. package/plugins/meta-architect/skills/sage/agents/openai.yaml +2 -2
  23. package/plugins/meta-architect/skills/vet/agents/openai.yaml +2 -2
  24. package/plugins/meta-architect/skills/vibe/agents/openai.yaml +2 -2
  25. package/scripts/postinstall.js +7 -3
  26. package/skills/arch/agents/openai.yaml +2 -2
  27. package/skills/build/agents/openai.yaml +2 -2
  28. package/skills/flow/agents/openai.yaml +2 -2
  29. package/skills/meta-architect/agents/openai.yaml +2 -2
  30. package/skills/meta-architect/references/core-release-rules.md +1 -1
  31. package/skills/sage/agents/openai.yaml +2 -2
  32. package/skills/vet/agents/openai.yaml +2 -2
  33. package/skills/vibe/agents/openai.yaml +2 -2
  34. package/src/launcher.js +3 -2
  35. package/src/mcp-live-client.js +1 -1
  36. package/src/runtime-artifacts.js +2 -2
  37. package/src/skill-installer.js +151 -2
  38. package/src/skills.js +3 -3
  39. package/templates/AGENTS.md +130 -0
  40. package/templates/catalog-manifest.json +22 -0
  41. package/templates/model-instructions/core.md +39 -0
  42. package/templates/model-instructions/release.md +41 -0
  43. package/templates/model-instructions/security.md +22 -0
@@ -60,7 +60,7 @@ npm uninstall -g @jstn-sdk/ma
60
60
  npm uninstall -g @jstn-sdk/ma @openai/codex
61
61
  ```
62
62
 
63
- Use the plugin bundle when you need installable skill metadata or local marketplace discovery. Use the package and launcher when you want the full Meta-Architect runtime posture.
63
+ Use the plugin bundle when you need installable skill metadata or local marketplace discovery. Use the package and Codex skill flow when you want the full Meta-Architect product experience.
64
64
 
65
65
  Primary related surfaces:
66
66
  - [docs/skills-publishing.md](../../docs/skills-publishing.md)
@@ -105,7 +105,7 @@ When consuming the plugin:
105
105
  The plugin version should track the release scope of the core repo.
106
106
 
107
107
  For this repository:
108
- - plugin scope is aligned to Meta-Architect `v0.1.0`
108
+ - plugin scope is aligned to Meta-Architect `v0.1.2`
109
109
  - any breaking contract change should be versioned intentionally
110
110
 
111
111
  The plugin is one distribution surface of the same product, not a separate product line.
@@ -1,4 +1,4 @@
1
1
  interface:
2
- display_name: "MA Architect"
3
- short_description: "Architecture and stack design for MA flows"
2
+ display_name: "$arch"
3
+ short_description: "Architecture-first product and system design"
4
4
  default_prompt: "Use $arch to produce architecture, stack rationale, subsystem boundaries, tradeoffs, and a phased delivery plan."
@@ -1,4 +1,4 @@
1
1
  interface:
2
- display_name: "MA Build"
3
- short_description: "Gated build planning and branch/worktree prep"
2
+ display_name: "$build"
3
+ short_description: "Build-readiness decision and next implementation step"
4
4
  default_prompt: "Use $build to decide whether implementation is ready, what remains blocked, and what the next build slice should be."
@@ -1,4 +1,4 @@
1
1
  interface:
2
- display_name: "MA Flow"
3
- short_description: "Business logic and state validation for MA"
2
+ display_name: "$flow"
3
+ short_description: "Logic, states, transitions, and blockers"
4
4
  default_prompt: "Use $flow to map business logic, state transitions, invariants, and blockers in the current design."
@@ -1,4 +1,4 @@
1
1
  interface:
2
- display_name: "Meta-Architect"
3
- short_description: "Core orchestration and gated build workflows"
2
+ display_name: "$meta-architect"
3
+ short_description: "Full Meta-Architect skill workflow"
4
4
  default_prompt: "Use $meta-architect to run the full Meta-Architect workflow inside Codex, then route through $arch, $sage, $flow, $vet, $vibe, and $build as needed."
@@ -10,4 +10,4 @@
10
10
  - `experience_status = GREEN` or `WAIVED`
11
11
  - Feature work merges into `development`, never directly into `prod`.
12
12
  - Release promotion is allowed only from `development` or approved `release/*`.
13
- - Use the helper CLI only when repo-local state automation is explicitly needed; otherwise stay inside Codex and carry the gate decisions in the session.
13
+ - Use the helper command path only when repo-local state automation is explicitly needed; otherwise stay inside Codex and carry the gate decisions in the session.
@@ -1,4 +1,4 @@
1
1
  interface:
2
- display_name: "MA Sage"
3
- short_description: "GitMCP-backed OSS evidence selection"
2
+ display_name: "$sage"
3
+ short_description: "Evidence-backed stack and OSS validation"
4
4
  default_prompt: "Use $sage to validate stack choices with official docs, upstream repos, and approved GitMCP-backed sources."
@@ -1,4 +1,4 @@
1
1
  interface:
2
- display_name: "MA Vet"
3
- short_description: "Security, CVE, and risk review for MA"
2
+ display_name: "$vet"
3
+ short_description: "Security and trust-boundary review"
4
4
  default_prompt: "Use $vet to review trust boundaries, security risks, abuse cases, and safer alternatives in the current design."
@@ -1,4 +1,4 @@
1
1
  interface:
2
- display_name: "MA Vibe"
3
- short_description: "DX and UX review before Meta-Architect build"
2
+ display_name: "$vibe"
3
+ short_description: "DX and UX review before implementation"
4
4
  default_prompt: "Use $vibe to review developer and user experience risks before the build lane proceeds."
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  import process from "node:process";
4
- import { installSkills } from "../src/skill-installer.js";
4
+ import { installSkills, installSupportBundle } from "../src/skill-installer.js";
5
5
 
6
6
  async function main() {
7
7
  if (process.env.MA_SKIP_AUTO_INSTALL === "1") {
@@ -9,8 +9,12 @@ async function main() {
9
9
  return;
10
10
  }
11
11
 
12
- const { targetRoot, installed } = await installSkills();
13
- console.log(`meta-architect: installed ${installed.length} Codex skills into ${targetRoot}`);
12
+ const [
13
+ { targetRoot: skillRoot, installed: skills },
14
+ { targetRoot: bundleRoot, installed: assets },
15
+ ] = await Promise.all([installSkills(), installSupportBundle()]);
16
+ console.log(`meta-architect: installed ${skills.length} Codex skills into ${skillRoot}`);
17
+ console.log(`meta-architect: installed ${assets.length} support assets into ${bundleRoot}`);
14
18
  }
15
19
 
16
20
  main().catch((error) => {
@@ -1,4 +1,4 @@
1
1
  interface:
2
- display_name: "MA Architect"
3
- short_description: "Architecture and stack design for MA flows"
2
+ display_name: "$arch"
3
+ short_description: "Architecture-first product and system design"
4
4
  default_prompt: "Use $arch to produce architecture, stack rationale, subsystem boundaries, tradeoffs, and a phased delivery plan."
@@ -1,4 +1,4 @@
1
1
  interface:
2
- display_name: "MA Build"
3
- short_description: "Gated build planning and branch/worktree prep"
2
+ display_name: "$build"
3
+ short_description: "Build-readiness decision and next implementation step"
4
4
  default_prompt: "Use $build to decide whether implementation is ready, what remains blocked, and what the next build slice should be."
@@ -1,4 +1,4 @@
1
1
  interface:
2
- display_name: "MA Flow"
3
- short_description: "Business logic and state validation for MA"
2
+ display_name: "$flow"
3
+ short_description: "Logic, states, transitions, and blockers"
4
4
  default_prompt: "Use $flow to map business logic, state transitions, invariants, and blockers in the current design."
@@ -1,4 +1,4 @@
1
1
  interface:
2
- display_name: "Meta-Architect"
3
- short_description: "Core orchestration and gated build workflows"
2
+ display_name: "$meta-architect"
3
+ short_description: "Full Meta-Architect skill workflow"
4
4
  default_prompt: "Use $meta-architect to run the full Meta-Architect workflow inside Codex, then route through $arch, $sage, $flow, $vet, $vibe, and $build as needed."
@@ -10,4 +10,4 @@
10
10
  - `experience_status = GREEN` or `WAIVED`
11
11
  - Feature work merges into `development`, never directly into `prod`.
12
12
  - Release promotion is allowed only from `development` or approved `release/*`.
13
- - Use the helper CLI only when repo-local state automation is explicitly needed; otherwise stay inside Codex and carry the gate decisions in the session.
13
+ - Use the helper command path only when repo-local state automation is explicitly needed; otherwise stay inside Codex and carry the gate decisions in the session.
@@ -1,4 +1,4 @@
1
1
  interface:
2
- display_name: "MA Sage"
3
- short_description: "GitMCP-backed OSS evidence selection"
2
+ display_name: "$sage"
3
+ short_description: "Evidence-backed stack and OSS validation"
4
4
  default_prompt: "Use $sage to validate stack choices with official docs, upstream repos, and approved GitMCP-backed sources."
@@ -1,4 +1,4 @@
1
1
  interface:
2
- display_name: "MA Vet"
3
- short_description: "Security, CVE, and risk review for MA"
2
+ display_name: "$vet"
3
+ short_description: "Security and trust-boundary review"
4
4
  default_prompt: "Use $vet to review trust boundaries, security risks, abuse cases, and safer alternatives in the current design."
@@ -1,4 +1,4 @@
1
1
  interface:
2
- display_name: "MA Vibe"
3
- short_description: "DX and UX review before Meta-Architect build"
2
+ display_name: "$vibe"
3
+ short_description: "DX and UX review before implementation"
4
4
  default_prompt: "Use $vibe to review developer and user experience risks before the build lane proceeds."
package/src/launcher.js CHANGED
@@ -6,6 +6,7 @@ const nativeCommands = new Set([
6
6
  "init",
7
7
  "idea",
8
8
  "skills",
9
+ "sdk-path",
9
10
  "status",
10
11
  "merge",
11
12
  "release",
@@ -45,10 +46,10 @@ export function runCodex(args) {
45
46
 
46
47
  if (result.error) {
47
48
  if (result.error.code === "ENOENT") {
48
- throw new Error("Codex CLI not found. Install it with: npm install -g @openai/codex");
49
+ throw new Error("Codex not found. Install it with: npm install -g @openai/codex");
49
50
  }
50
51
 
51
- throw new Error(`Failed to start Codex CLI: ${result.error.message}`);
52
+ throw new Error(`Failed to start Codex: ${result.error.message}`);
52
53
  }
53
54
 
54
55
  return typeof result.status === "number" ? result.status : 1;
@@ -38,7 +38,7 @@ export class McpSseClient {
38
38
  capabilities: {},
39
39
  clientInfo: {
40
40
  name: "meta-architect",
41
- version: "0.1.0",
41
+ version: "0.1.2",
42
42
  },
43
43
  });
44
44
 
@@ -19,7 +19,7 @@ function renderProjectContext({ idea = null }) {
19
19
  "",
20
20
  "- `.ma/decisions.json` tracks gate and decision history",
21
21
  "- `.ma/release.json` tracks release-state fields",
22
- "- `.ma/runbook.md` defines the local operator workflow",
22
+ "- `.ma/runbook.md` defines the local helper workflow",
23
23
  "",
24
24
  "## Next Recommended Trigger",
25
25
  "",
@@ -240,7 +240,7 @@ function renderRunbook() {
240
240
  "",
241
241
  "## Purpose",
242
242
  "",
243
- "This runbook defines the local helper-path workflow for Meta-Architect.",
243
+ "This runbook defines the local helper-path workflow that supports the primary in-session skill flow.",
244
244
  "",
245
245
  "## Canonical Sequence",
246
246
  "",
@@ -3,9 +3,16 @@ import os from "node:os";
3
3
  import path from "node:path";
4
4
  import { packageRoot } from "./paths.js";
5
5
 
6
+ function resolveCodexHome() {
7
+ return process.env.CODEX_HOME ?? path.join(os.homedir(), ".codex");
8
+ }
9
+
6
10
  function resolveSkillInstallRoot() {
7
- const codexHome = process.env.CODEX_HOME ?? path.join(os.homedir(), ".codex");
8
- return path.join(codexHome, "skills");
11
+ return path.join(resolveCodexHome(), "skills");
12
+ }
13
+
14
+ function resolveSupportBundleRoot() {
15
+ return path.join(resolveCodexHome(), "meta-architect-sdk");
9
16
  }
10
17
 
11
18
  async function copyDir(src, dest) {
@@ -26,6 +33,10 @@ export function getSkillInstallRoot() {
26
33
  return resolveSkillInstallRoot();
27
34
  }
28
35
 
36
+ export function getSupportBundleRoot() {
37
+ return resolveSupportBundleRoot();
38
+ }
39
+
29
40
  export async function loadSkillManifest() {
30
41
  const manifestPath = path.join(packageRoot, "skills", "index.json");
31
42
  const manifest = JSON.parse(await fs.readFile(manifestPath, "utf8"));
@@ -47,3 +58,141 @@ export async function installSkills({ targetRoot = getSkillInstallRoot() } = {})
47
58
 
48
59
  return { targetRoot, installed };
49
60
  }
61
+
62
+ async function copyPath(src, dest) {
63
+ const stat = await fs.stat(src);
64
+ if (stat.isDirectory()) {
65
+ await fs.rm(dest, { recursive: true, force: true });
66
+ await copyDir(src, dest);
67
+ return "directory";
68
+ }
69
+
70
+ await fs.mkdir(path.dirname(dest), { recursive: true });
71
+ await fs.copyFile(src, dest);
72
+ return "file";
73
+ }
74
+
75
+ export async function installSupportBundle({ targetRoot = getSupportBundleRoot() } = {}) {
76
+ const assets = [
77
+ {
78
+ name: "mcp",
79
+ src: path.join(packageRoot, "mcp"),
80
+ dest: path.join(targetRoot, "mcp"),
81
+ },
82
+ {
83
+ name: "sprint",
84
+ src: path.join(packageRoot, "sprint"),
85
+ dest: path.join(targetRoot, "sprint"),
86
+ },
87
+ {
88
+ name: "prompts",
89
+ src: path.join(packageRoot, ".codex", "prompts"),
90
+ dest: path.join(targetRoot, "prompts"),
91
+ },
92
+ {
93
+ name: "scripts",
94
+ src: path.join(packageRoot, "scripts"),
95
+ dest: path.join(targetRoot, "scripts"),
96
+ },
97
+ {
98
+ name: "plugin",
99
+ src: path.join(packageRoot, "plugins", "meta-architect"),
100
+ dest: path.join(targetRoot, "plugins", "meta-architect"),
101
+ },
102
+ {
103
+ name: "templates",
104
+ src: path.join(packageRoot, "templates"),
105
+ dest: path.join(targetRoot, "templates"),
106
+ },
107
+ {
108
+ name: "docs-readme",
109
+ src: path.join(packageRoot, "docs", "README.md"),
110
+ dest: path.join(targetRoot, "docs", "README.md"),
111
+ },
112
+ ];
113
+
114
+ await fs.mkdir(targetRoot, { recursive: true });
115
+ const installed = [];
116
+ for (const asset of assets) {
117
+ await copyPath(asset.src, asset.dest);
118
+ installed.push({ name: asset.name, dest: asset.dest });
119
+ }
120
+
121
+ const pkg = JSON.parse(await fs.readFile(path.join(packageRoot, "package.json"), "utf8"));
122
+ const manifest = {
123
+ packageName: pkg.name,
124
+ packageVersion: pkg.version,
125
+ installedAt: new Date().toISOString(),
126
+ root: targetRoot,
127
+ assets: installed,
128
+ };
129
+ await fs.writeFile(
130
+ path.join(targetRoot, "asset-manifest.json"),
131
+ `${JSON.stringify(manifest, null, 2)}\n`,
132
+ );
133
+
134
+ return { targetRoot, installed };
135
+ }
136
+
137
+ export async function areSkillsInstalled({ targetRoot = getSkillInstallRoot() } = {}) {
138
+ const skills = await loadSkillManifest();
139
+
140
+ for (const skill of skills) {
141
+ const skillDir = path.join(targetRoot, path.basename(skill.path));
142
+ try {
143
+ await fs.access(path.join(skillDir, "SKILL.md"));
144
+ } catch {
145
+ return false;
146
+ }
147
+ }
148
+
149
+ return true;
150
+ }
151
+
152
+ export async function isSupportBundleInstalled({ targetRoot = getSupportBundleRoot() } = {}) {
153
+ const requiredFiles = [
154
+ path.join(targetRoot, "asset-manifest.json"),
155
+ path.join(targetRoot, "mcp", "servers.json"),
156
+ path.join(targetRoot, "sprint", "07-release.md"),
157
+ path.join(targetRoot, "prompts", "onboarding.md"),
158
+ path.join(targetRoot, "scripts", "skills-install.js"),
159
+ path.join(targetRoot, "plugins", "meta-architect", ".codex-plugin", "plugin.json"),
160
+ path.join(targetRoot, "templates", "AGENTS.md"),
161
+ ];
162
+
163
+ for (const file of requiredFiles) {
164
+ try {
165
+ await fs.access(file);
166
+ } catch {
167
+ return false;
168
+ }
169
+ }
170
+
171
+ return true;
172
+ }
173
+
174
+ export async function ensureSkillsInstalled({ targetRoot = getSkillInstallRoot() } = {}) {
175
+ if (process.env.MA_SKIP_AUTO_INSTALL === "1") {
176
+ return { targetRoot, installed: [], skipped: true };
177
+ }
178
+
179
+ if (await areSkillsInstalled({ targetRoot })) {
180
+ return { targetRoot, installed: [], skipped: false };
181
+ }
182
+
183
+ const result = await installSkills({ targetRoot });
184
+ return { ...result, skipped: false };
185
+ }
186
+
187
+ export async function ensureSupportBundleInstalled({ targetRoot = getSupportBundleRoot() } = {}) {
188
+ if (process.env.MA_SKIP_AUTO_INSTALL === "1") {
189
+ return { targetRoot, installed: [], skipped: true };
190
+ }
191
+
192
+ if (await isSupportBundleInstalled({ targetRoot })) {
193
+ return { targetRoot, installed: [], skipped: false };
194
+ }
195
+
196
+ const result = await installSupportBundle({ targetRoot });
197
+ return { ...result, skipped: false };
198
+ }
package/src/skills.js CHANGED
@@ -243,7 +243,7 @@ export async function runVibe() {
243
243
  const outcomes = await readJson(getRuntimeWritePath("evidence", "outcomes.json"));
244
244
  const note = {
245
245
  area: "developer-experience",
246
- summary: "Core CLI and gated workflow remain the primary operator surface",
246
+ summary: "The in-session skill flow remains the primary Meta-Architect surface",
247
247
  };
248
248
  outcomes.items.push(note);
249
249
  await writeJson(getRuntimeWritePath("evidence", "outcomes.json"), outcomes);
@@ -344,8 +344,8 @@ export async function runInit() {
344
344
  path.join(getRepoRoot(), "docs", "release-spec.md"),
345
345
  ],
346
346
  [
347
- path.join(packageRoot, "docs", "qa", "release-readiness-0.1.0.md"),
348
- path.join(getRepoRoot(), "docs", "qa", "release-readiness-0.1.0.md"),
347
+ path.join(packageRoot, "docs", "qa", "release-readiness-0.1.2.md"),
348
+ path.join(getRepoRoot(), "docs", "qa", "release-readiness-0.1.2.md"),
349
349
  ],
350
350
  ];
351
351
 
@@ -0,0 +1,130 @@
1
+ # Meta-Architect Operating Contract
2
+
3
+ This repository uses Meta-Architect as a structured orchestration layer for programmatic architecture and verified engineering. The purpose of this contract is to make repository behavior explicit, reviewable, and stable enough to be reused across generated or installed surfaces.
4
+
5
+ ## Core triggers
6
+
7
+ The primary trigger surfaces are:
8
+
9
+ - `$arch` — architecture and stack blueprinting
10
+ - `$sage` — evidence-backed OSS discovery through MCP/GitMCP collections
11
+ - `$flow` — business logic and state-transition review
12
+ - `$vet` — security and risk review
13
+ - `$vibe` — DX/UX review
14
+ - `$build` — bounded implementation planning and build execution handoff
15
+
16
+ ## Core rule
17
+
18
+ No implementation should proceed as if it were approved unless the required architecture, evidence, logic, and security gates are satisfied.
19
+
20
+ ## Kernel vs extension model
21
+
22
+ Meta-Architect should be treated as a core system plus extension surfaces:
23
+
24
+ - **Core system**
25
+ - state and decision files
26
+ - gate enforcement
27
+ - MCP endpoint policy
28
+ - CLI orchestration commands
29
+ - **Extension surfaces**
30
+ - publishable skill folders
31
+ - plugin bundle
32
+ - missions and demos
33
+ - prompts and templates
34
+
35
+ The core must stay stable and inspectable. Extensions may vary, but they must not weaken the kernel contract.
36
+
37
+ ## Gate rules
38
+
39
+ The repository recognizes the following status fields:
40
+
41
+ - `idea_status`
42
+ - `architecture_status`
43
+ - `evidence_status`
44
+ - `logic_status`
45
+ - `security_status`
46
+ - `experience_status`
47
+ - `build_status`
48
+ - `merge_status`
49
+ - `release_status`
50
+
51
+ ### Build lock rule
52
+
53
+ `$build` must remain locked unless all of the following are true:
54
+
55
+ - `idea_status = CLEAR`
56
+ - `architecture_status = APPROVED`
57
+ - `evidence_status = VERIFIED`
58
+ - `logic_status = GREEN`
59
+ - `security_status = GREEN`
60
+ - `experience_status = GREEN` or `WAIVED`
61
+
62
+ If any required field is missing, red, or unverified, the workflow should stop and report blockers clearly.
63
+
64
+ ### Merge and release rule
65
+
66
+ - `feature/*` work merges into `development`
67
+ - release promotion is allowed only from `development` or approved `release/*`
68
+ - no direct `feature/* -> prod`
69
+
70
+ ## Evidence rule
71
+
72
+ Major technology recommendations must be supported by evidence from configured MCP/GitMCP sources. Do not invent fake repositories, fake endpoints, or unsupported claims.
73
+
74
+ ### Exact endpoint rule
75
+
76
+ - Prefer repo-specific `https://gitmcp.io/{owner}/{repo}` endpoints
77
+ - Treat `https://gitmcp.io/docs` as fallback policy only, not a normal approved evidence source for build-unlocking decisions
78
+
79
+ ## Logging rule
80
+
81
+ Architecture decisions, evidence, audits, and release-relevant outcomes should be written to repository-visible local files where applicable, especially:
82
+
83
+ - `.ma/decisions.json`
84
+ - `.ma/release.json`
85
+ - `.ma/evidence/sources.json`
86
+ - `.ma/evidence/audits.json`
87
+ - `.ma/evidence/cves.json`
88
+
89
+ ## Skill routing
90
+
91
+ Use the role that best matches the task:
92
+
93
+ - Use `$arch` for system shape, stack options, component boundaries, trade-offs, and blueprinting.
94
+ - Use `$sage` for evidence-backed package, framework, and library selection.
95
+ - Use `$flow` for workflow correctness, state transitions, data flow, and edge-case review.
96
+ - Use `$vet` for security checks, dependency risk review, and release-sensitive blocking findings.
97
+ - Use `$vibe` for developer experience and user experience review.
98
+ - Use `$build` only after required gates are satisfied and only for bounded implementation planning or execution.
99
+
100
+ ## Prompt behavior
101
+
102
+ When working in this repository:
103
+
104
+ - prefer explicit reasoning and explicit file changes
105
+ - do not skip validation steps silently
106
+ - do not weaken hooks or gates for convenience
107
+ - do not commit runtime `.ma` state
108
+ - do not treat release-sensitive changes as trivial edits
109
+
110
+ ## Contributor expectation
111
+
112
+ Changes to skills, prompts, package metadata, workflows, release docs, or plugin surfaces are release-sensitive. These changes should be tested, documented, and described clearly in pull requests.
113
+
114
+ ## Release expectation
115
+
116
+ Production release means:
117
+
118
+ - the core trigger flow works end-to-end
119
+ - release artifacts are validated
120
+ - skills packaging and installation succeed
121
+ - docs reflect actual behavior
122
+ - no hidden runtime residue is shipped as source
123
+
124
+ ## Related surfaces
125
+
126
+ - `CONTRIBUTING.md`
127
+ - `docs/release-spec.md`
128
+ - `templates/catalog-manifest.json`
129
+ - `prompts/`
130
+ - `skills/`
@@ -0,0 +1,22 @@
1
+ {
2
+ "version": 1,
3
+ "skills": [
4
+ "meta-architect",
5
+ "meta-architect-arch",
6
+ "meta-architect-sage",
7
+ "meta-architect-flow",
8
+ "meta-architect-vet",
9
+ "meta-architect-vibe",
10
+ "meta-architect-build"
11
+ ],
12
+ "prompts": [
13
+ "architect",
14
+ "sage",
15
+ "flow",
16
+ "security-reviewer",
17
+ "vibe",
18
+ "builder",
19
+ "release-manager",
20
+ "verifier"
21
+ ]
22
+ }
@@ -0,0 +1,39 @@
1
+ # Core Model Instructions
2
+
3
+ Use these instructions when generating or applying repository content to the Meta-Architect core system.
4
+
5
+ ## Core expectations
6
+
7
+ - Keep Meta-Architect skills, gates, evidence, and release behavior explicit.
8
+ - Prefer inspectable files over hidden side effects.
9
+ - Do not bypass the `.ma` gate model.
10
+ - Treat CLI, skill contracts, plugin surfaces, and docs as one coherent product system.
11
+
12
+ ## Kernel rule
13
+
14
+ The kernel contains the minimum stable logic that makes the system trustworthy:
15
+ - status files
16
+ - decision logging
17
+ - evidence capture
18
+ - build/merge/release policy
19
+ - packaging and validation commands
20
+
21
+ Do not treat those as negotiable convenience features.
22
+
23
+ ## Documentation rule
24
+
25
+ When writing docs:
26
+ - describe what the runtime actually does today
27
+ - distinguish baseline first-pass review from deep autonomous analysis when necessary
28
+ - show exact commands and expected outcomes
29
+ - cross-link related surfaces
30
+
31
+ ## Change rule
32
+
33
+ Any change that weakens:
34
+ - inspectability
35
+ - evidence traceability
36
+ - gate enforcement
37
+ - or packaging determinism
38
+
39
+ should be treated as a regression.
@@ -0,0 +1,41 @@
1
+ # Release Model Instructions
2
+
3
+ These instructions apply when generating or reviewing release-facing artifacts.
4
+
5
+ ## Release posture
6
+
7
+ Fail closed on:
8
+ - missing release artifacts
9
+ - failing checks
10
+ - blocked channels
11
+ - ambiguous publish claims
12
+
13
+ ## Versioning rule
14
+
15
+ Preserve stable public contracts for the active release line unless a major version is intentionally planned.
16
+
17
+ ## Publication rule
18
+
19
+ Never claim a publication channel succeeded without concrete evidence.
20
+
21
+ This includes:
22
+ - git branch push
23
+ - tag push
24
+ - GitHub release creation
25
+ - GitHub asset upload
26
+ - npm publish
27
+ - plugin or marketplace publish
28
+
29
+ ## Release artifact minimum
30
+
31
+ Release-facing changes should stay aligned across:
32
+ - `package.json`
33
+ - `CHANGELOG.md`
34
+ - `RELEASE.md`
35
+ - `docs/qa/`
36
+ - `skills/index.json`
37
+ - tarball outputs
38
+
39
+ ## Hygiene rule
40
+
41
+ Do not ship local runtime state, caches, or accidental build outputs as public source.