@jstn-sdk/ma 0.1.5 → 0.1.7
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/plugins/marketplace.json +20 -0
- package/.codex/hooks.json +1 -1
- package/.codex/prompts/enforcement.md +13 -3
- package/.codex/prompts/onboarding.md +29 -14
- package/README.md +536 -129
- package/bin/ma.js +61 -103
- package/docs/README.md +2 -1
- package/docs/assets/image/Screenshot(1).png +0 -0
- package/docs/assets/image/Screenshot(2).png +0 -0
- package/docs/assets/image/Screenshot(3).png +0 -0
- package/docs/assets/image/Screenshot(4).png +0 -0
- package/docs/assets/image/Screenshot(5).png +0 -0
- package/docs/assets/image/Screenshot(6).png +0 -0
- package/docs/assets/image/Screenshot(7).png +0 -0
- package/docs/assets/image/Screenshot(8).png +0 -0
- package/docs/assets/image/Screenshot(9).png +0 -0
- package/docs/assets/meta-architect-logo.png +0 -0
- package/docs/assets/meta-architect-logo.svg +8 -0
- package/docs/getting-started.md +434 -37
- package/docs/installed-sdk.md +60 -0
- package/docs/mcp-setup.md +46 -134
- package/docs/onboarding.md +41 -11
- package/docs/qa/release-readiness-0.1.5.md +46 -44
- package/docs/qa/release-readiness-0.1.7.md +79 -0
- package/docs/release-spec.md +81 -103
- package/docs/skills-publishing.md +187 -54
- package/docs/skills.md +82 -141
- package/mcp/collections.json +1 -1
- package/mcp/fallback.json +1 -1
- package/mcp/servers.json +1 -1
- package/package.json +17 -14
- package/plugins/meta-architect/.app.json +1 -1
- package/plugins/meta-architect/.codex-plugin/plugin.json +23 -0
- package/plugins/meta-architect/.mcp.json +1 -1
- package/plugins/meta-architect/README.md +23 -10
- package/plugins/meta-architect/skills/arch/SKILL.md +27 -0
- package/plugins/meta-architect/skills/arch/agents/openai.yaml +4 -0
- package/plugins/meta-architect/skills/build/SKILL.md +24 -0
- package/plugins/meta-architect/skills/build/agents/openai.yaml +4 -0
- package/plugins/meta-architect/skills/flow/SKILL.md +24 -0
- package/plugins/meta-architect/skills/flow/agents/openai.yaml +4 -0
- package/plugins/meta-architect/skills/maestro/SKILL.md +25 -0
- package/plugins/meta-architect/skills/maestro/agents/openai.yaml +4 -0
- package/plugins/meta-architect/skills/meta-architect/SKILL.md +19 -23
- package/plugins/meta-architect/skills/meta-architect/agents/openai.yaml +4 -0
- package/plugins/meta-architect/skills/meta-architect/references/core-release-rules.md +13 -0
- package/plugins/meta-architect/skills/sage/SKILL.md +37 -0
- package/plugins/meta-architect/skills/sage/agents/openai.yaml +4 -0
- package/plugins/meta-architect/skills/vet/SKILL.md +25 -0
- package/plugins/meta-architect/skills/vet/agents/openai.yaml +4 -0
- package/plugins/meta-architect/skills/vibe/SKILL.md +24 -0
- package/plugins/meta-architect/skills/vibe/agents/openai.yaml +4 -0
- package/scripts/doctor.js +8 -0
- package/scripts/plugin-sync.js +93 -0
- package/scripts/postinstall.js +23 -0
- package/scripts/release-metadata.js +94 -0
- package/scripts/release-sync.js +359 -0
- package/scripts/release-verify.js +153 -0
- package/scripts/setup-npmrc.js +39 -0
- package/scripts/skills-install.js +4 -36
- package/scripts/skills-manifest.js +1 -1
- package/scripts/skills-validate.js +78 -40
- package/skills/arch/SKILL.md +27 -0
- package/skills/arch/agents/openai.yaml +4 -0
- package/skills/build/SKILL.md +24 -0
- package/skills/build/agents/openai.yaml +4 -0
- package/skills/flow/SKILL.md +24 -0
- package/skills/flow/agents/openai.yaml +4 -0
- package/skills/index.json +27 -22
- package/skills/maestro/SKILL.md +25 -0
- package/skills/maestro/agents/openai.yaml +4 -0
- package/skills/meta-architect/SKILL.md +19 -23
- package/skills/meta-architect/agents/openai.yaml +3 -3
- package/skills/meta-architect/references/core-release-rules.md +2 -2
- package/skills/sage/SKILL.md +37 -0
- package/skills/sage/agents/openai.yaml +4 -0
- package/skills/vet/SKILL.md +25 -0
- package/skills/vet/agents/openai.yaml +4 -0
- package/skills/vibe/SKILL.md +24 -0
- package/skills/vibe/agents/openai.yaml +4 -0
- package/sprint/00-idea.md +1 -1
- package/sprint/01-architecture.md +1 -1
- package/sprint/02-oss-evidence.md +1 -1
- package/sprint/03-logic.md +1 -1
- package/sprint/04-security.md +2 -2
- package/sprint/05-dx-ux.md +1 -1
- package/src/decision-log.js +4 -4
- package/src/launcher.js +21 -17
- package/src/mcp-live-client.js +1 -1
- package/src/paths.js +8 -32
- package/src/release-state.js +3 -3
- package/src/runtime-artifacts.js +411 -0
- package/src/skill-installer.js +198 -0
- package/src/skills.js +473 -166
- package/templates/AGENTS.md +23 -6
- package/templates/model-instructions/core.md +1 -1
- package/.codex/config.toml +0 -2
- package/plugins/meta-architect/skills/meta-architect-arch/SKILL.md +0 -24
- package/plugins/meta-architect/skills/meta-architect-build/SKILL.md +0 -25
- package/plugins/meta-architect/skills/meta-architect-flow/SKILL.md +0 -23
- package/plugins/meta-architect/skills/meta-architect-sage/SKILL.md +0 -23
- package/plugins/meta-architect/skills/meta-architect-vet/SKILL.md +0 -23
- package/plugins/meta-architect/skills/meta-architect-vibe/SKILL.md +0 -24
- package/prompts/architect.md +0 -216
- package/prompts/builder.md +0 -10
- package/prompts/flow.md +0 -9
- package/prompts/release-manager.md +0 -10
- package/prompts/sage.md +0 -10
- package/prompts/security-reviewer.md +0 -10
- package/prompts/verifier.md +0 -10
- package/prompts/vibe.md +0 -10
- package/skills/meta-architect-arch/SKILL.md +0 -24
- package/skills/meta-architect-arch/agents/openai.yaml +0 -4
- package/skills/meta-architect-build/SKILL.md +0 -25
- package/skills/meta-architect-build/agents/openai.yaml +0 -4
- package/skills/meta-architect-flow/SKILL.md +0 -23
- package/skills/meta-architect-flow/agents/openai.yaml +0 -4
- package/skills/meta-architect-sage/SKILL.md +0 -23
- package/skills/meta-architect-sage/agents/openai.yaml +0 -4
- package/skills/meta-architect-vet/SKILL.md +0 -23
- package/skills/meta-architect-vet/agents/openai.yaml +0 -4
- package/skills/meta-architect-vibe/SKILL.md +0 -24
- package/skills/meta-architect-vibe/agents/openai.yaml +0 -4
- package/src/doctor.js +0 -30
- package/src/setup.js +0 -375
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "meta-architect",
|
|
3
|
+
"version": "0.1.7",
|
|
4
|
+
"description": "Skills-first workflow layer for Codex with architecture, evidence, review, and gated build guidance.",
|
|
5
|
+
"author": {
|
|
6
|
+
"name": "JustineDevs",
|
|
7
|
+
"url": "https://github.com/JustineDevs"
|
|
8
|
+
},
|
|
9
|
+
"homepage": "https://github.com/JustineDevs/meta-architect",
|
|
10
|
+
"repository": "https://github.com/JustineDevs/meta-architect.git",
|
|
11
|
+
"license": "MIT",
|
|
12
|
+
"keywords": ["codex", "skills", "architecture", "workflow", "review"],
|
|
13
|
+
"skills": "./skills/",
|
|
14
|
+
"mcpServers": "./.mcp.json",
|
|
15
|
+
"apps": "./.app.json",
|
|
16
|
+
"interface": {
|
|
17
|
+
"displayName": "Meta-Architect",
|
|
18
|
+
"shortDescription": "Architecture-first skill bundle for Codex workflows.",
|
|
19
|
+
"longDescription": "Meta-Architect packages reusable Codex skills plus plugin-scoped MCP and app metadata. The in-session skill workflow is primary. The ma helper command and .ma state only support setup, release gates, and optional local helper automation.",
|
|
20
|
+
"developerName": "JustineDevs",
|
|
21
|
+
"category": "Developer Tools"
|
|
22
|
+
}
|
|
23
|
+
}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
# Meta-Architect Plugin Bundle
|
|
2
2
|
|
|
3
|
-
This plugin bundle packages the Meta-Architect
|
|
3
|
+
This plugin bundle packages the Meta-Architect skill surfaces for consumers that want an installable plugin-style distribution instead of working directly from the source repository.
|
|
4
4
|
|
|
5
5
|
## What the plugin contains
|
|
6
6
|
|
|
7
7
|
- plugin metadata:
|
|
8
|
+
- `.codex-plugin/plugin.json`
|
|
8
9
|
- `.app.json`
|
|
9
10
|
- `.mcp.json`
|
|
10
11
|
- bundled Meta-Architect skill surfaces under `skills/`
|
|
@@ -17,7 +18,7 @@ This plugin is **not** the full source repository.
|
|
|
17
18
|
It does not attempt to ship:
|
|
18
19
|
- repository `.github/` workflows
|
|
19
20
|
- contributor-facing repo templates
|
|
20
|
-
- local runtime `.
|
|
21
|
+
- local runtime `.ma` state
|
|
21
22
|
- every source file in the repository
|
|
22
23
|
- the entire release engineering toolchain
|
|
23
24
|
|
|
@@ -37,20 +38,30 @@ Plugin bundle contains:
|
|
|
37
38
|
- the installable skill-facing product layer
|
|
38
39
|
- plugin metadata that describes the bundle to consumers
|
|
39
40
|
|
|
40
|
-
Use the core repo when you want to develop Meta-Architect itself. Use the plugin bundle when you
|
|
41
|
-
want the packaged Codex runtime layer.
|
|
41
|
+
Use the core repo when you want to develop Meta-Architect itself. Use the plugin bundle when you want to consume the packaged skill surface.
|
|
42
42
|
|
|
43
43
|
## Install and use
|
|
44
44
|
|
|
45
|
-
The plugin-facing bundle
|
|
45
|
+
The plugin-facing bundle should be consumed alongside the repository’s documented packaging/install flow.
|
|
46
46
|
|
|
47
|
-
|
|
47
|
+
Canonical package/runtime path:
|
|
48
48
|
|
|
49
49
|
```bash
|
|
50
|
-
|
|
50
|
+
# Install
|
|
51
|
+
npm i -g @openai/codex@latest @jstn-sdk/ma@latest
|
|
52
|
+
|
|
53
|
+
# Launch
|
|
51
54
|
ma --madmax --high
|
|
55
|
+
|
|
56
|
+
# Remove Meta-Architect only
|
|
57
|
+
npm uninstall -g @jstn-sdk/ma
|
|
58
|
+
|
|
59
|
+
# Remove Meta-Architect and Codex
|
|
60
|
+
npm uninstall -g @jstn-sdk/ma @openai/codex
|
|
52
61
|
```
|
|
53
62
|
|
|
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
|
+
|
|
54
65
|
Primary related surfaces:
|
|
55
66
|
- [docs/skills-publishing.md](../../docs/skills-publishing.md)
|
|
56
67
|
- [skills/](../../skills/)
|
|
@@ -59,7 +70,9 @@ If you are working from the repository directly, validate and package with:
|
|
|
59
70
|
|
|
60
71
|
```bash
|
|
61
72
|
npm run skills:manifest
|
|
73
|
+
npm run plugin:sync
|
|
62
74
|
npm run skills:validate
|
|
75
|
+
npm run plugin:verify
|
|
63
76
|
npm run skills:pack
|
|
64
77
|
npm run skills:install -- --path ./dist/installed-skills
|
|
65
78
|
```
|
|
@@ -67,7 +80,6 @@ npm run skills:install -- --path ./dist/installed-skills
|
|
|
67
80
|
Consumer expectation:
|
|
68
81
|
- the plugin ships the same public skill contracts as the canonical `skills/` directory
|
|
69
82
|
- it does not define a looser or simplified product contract
|
|
70
|
-
- the main operating surface remains runtime skill tags inside Codex
|
|
71
83
|
|
|
72
84
|
## MCP wiring expectations
|
|
73
85
|
|
|
@@ -85,7 +97,7 @@ Do not assume the plugin alone provides a fully wired live MCP environment.
|
|
|
85
97
|
When consuming the plugin:
|
|
86
98
|
- use committed `skills/` content as the contract source
|
|
87
99
|
- validate installed skill folders
|
|
88
|
-
- do not treat local runtime `.
|
|
100
|
+
- do not treat local runtime `.ma` state as part of the distributable plugin
|
|
89
101
|
- preserve the gate/evidence semantics documented in the repo
|
|
90
102
|
|
|
91
103
|
## Version and release relation
|
|
@@ -93,7 +105,7 @@ When consuming the plugin:
|
|
|
93
105
|
The plugin version should track the release scope of the core repo.
|
|
94
106
|
|
|
95
107
|
For this repository:
|
|
96
|
-
- plugin scope is aligned to Meta-Architect `v0.1.
|
|
108
|
+
- plugin scope is aligned to Meta-Architect `v0.1.7`
|
|
97
109
|
- any breaking contract change should be versioned intentionally
|
|
98
110
|
|
|
99
111
|
The plugin is one distribution surface of the same product, not a separate product line.
|
|
@@ -105,4 +117,5 @@ The plugin is one distribution surface of the same product, not a separate produ
|
|
|
105
117
|
- [docs/skills-publishing.md](../../docs/skills-publishing.md)
|
|
106
118
|
- [docs/mcp-setup.md](../../docs/mcp-setup.md)
|
|
107
119
|
- [.app.json](./.app.json)
|
|
120
|
+
- [.codex-plugin/plugin.json](./.codex-plugin/plugin.json)
|
|
108
121
|
- [.mcp.json](./.mcp.json)
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: arch
|
|
3
|
+
description: "Use when the user wants architecture-first product and system design with explicit stack rationale, boundaries, tradeoffs, data model choices, and phased delivery planning."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Arch
|
|
7
|
+
|
|
8
|
+
Use this skill inside Codex to turn a product idea into a concrete architecture brief.
|
|
9
|
+
|
|
10
|
+
## Output
|
|
11
|
+
|
|
12
|
+
Produce:
|
|
13
|
+
- problem framing
|
|
14
|
+
- user and workload assumptions
|
|
15
|
+
- system architecture and subsystem boundaries
|
|
16
|
+
- stack recommendation with tradeoffs
|
|
17
|
+
- data model and storage choices
|
|
18
|
+
- auth, security, and operational concerns
|
|
19
|
+
- phased delivery plan
|
|
20
|
+
- top risks and open questions
|
|
21
|
+
- exact next trigger, usually `$sage`
|
|
22
|
+
|
|
23
|
+
## Rules
|
|
24
|
+
|
|
25
|
+
- Ask only for constraints that materially change the architecture.
|
|
26
|
+
- Keep the design biased toward the simplest system that can satisfy the stated requirements.
|
|
27
|
+
- Be explicit about tradeoffs, failure modes, and what should stay out of the first version.
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: build
|
|
3
|
+
description: "Use when the user wants to decide whether implementation is ready, what remains blocked, and what the exact next build step should be."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Build
|
|
7
|
+
|
|
8
|
+
Use this skill inside Codex to convert the earlier review lanes into an implementation-ready decision.
|
|
9
|
+
|
|
10
|
+
## Output
|
|
11
|
+
|
|
12
|
+
Produce:
|
|
13
|
+
- current readiness verdict
|
|
14
|
+
- blockers that still prevent implementation
|
|
15
|
+
- the narrowest viable build slice
|
|
16
|
+
- branch or worktree suggestions when relevant
|
|
17
|
+
- test and verification expectations
|
|
18
|
+
- the exact next implementation step
|
|
19
|
+
|
|
20
|
+
## Rules
|
|
21
|
+
|
|
22
|
+
- Do not claim readiness if architecture, evidence, logic, security, or DX/UX gaps remain unresolved.
|
|
23
|
+
- Keep the recommended build slice small, testable, and reversible.
|
|
24
|
+
- If the user wants code immediately and the path is clear, end with a concrete implementation plan rather than more review prose.
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: flow
|
|
3
|
+
description: "Use when the user wants logic validation: states, transitions, invariants, edge cases, dead ends, and blockers before implementation."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Flow
|
|
7
|
+
|
|
8
|
+
Use this skill inside Codex to pressure-test how the system behaves, not just how it is structured.
|
|
9
|
+
|
|
10
|
+
## Output
|
|
11
|
+
|
|
12
|
+
Produce:
|
|
13
|
+
- key actors and system states
|
|
14
|
+
- main flows and failure flows
|
|
15
|
+
- invariants and state transitions
|
|
16
|
+
- race conditions, dead ends, and consistency risks
|
|
17
|
+
- missing requirements or ambiguous behavior
|
|
18
|
+
- exact next trigger, usually `$vet`
|
|
19
|
+
|
|
20
|
+
## Rules
|
|
21
|
+
|
|
22
|
+
- Focus on behavior, not UI polish or low-level code details.
|
|
23
|
+
- Surface ambiguity aggressively when it affects correctness.
|
|
24
|
+
- Prefer simple state models over sprawling branching logic.
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: maestro
|
|
3
|
+
description: "Use when the user wants Meta-Architect to choose the best next workflow step, explain why, and recommend the right lane or assignment."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Maestro
|
|
7
|
+
|
|
8
|
+
Use this skill inside Codex when you want Meta-Architect to act like a workflow manager.
|
|
9
|
+
|
|
10
|
+
## Output
|
|
11
|
+
|
|
12
|
+
Produce:
|
|
13
|
+
- current situation summary
|
|
14
|
+
- best next step
|
|
15
|
+
- why that step is next
|
|
16
|
+
- recommended lane or assignment
|
|
17
|
+
- what to avoid doing yet
|
|
18
|
+
- exact next trigger, command, or handoff
|
|
19
|
+
|
|
20
|
+
## Rules
|
|
21
|
+
|
|
22
|
+
- Prefer the smallest next step that moves the workflow forward safely.
|
|
23
|
+
- Respect current gate state before recommending implementation or release work.
|
|
24
|
+
- Be explicit when more evidence, planning, or validation is still needed.
|
|
25
|
+
- Route to the in-session skill flow first; use helper commands only when they are the clearest support path.
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
interface:
|
|
2
|
+
display_name: "$maestro"
|
|
3
|
+
short_description: "Best next step and lane orchestration"
|
|
4
|
+
default_prompt: "Use $maestro to inspect the current Meta-Architect workflow state, choose the best next step, explain why it is next, and recommend the right lane or assignment."
|
|
@@ -1,36 +1,32 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: meta-architect
|
|
3
|
-
description: "Use when
|
|
3
|
+
description: "Use when the user wants the full Meta-Architect workflow inside Codex: architecture-first planning, evidence-backed OSS selection, logic review, security review, DX/UX review, and build readiness without leaving the Codex session."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Meta-Architect
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
## Overview
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
Run the full Meta-Architect workflow inside Codex. Use this skill when the user wants the gated design-and-review sequence rather than a single specialist lane.
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
2. Launch `ma --madmax --high`
|
|
14
|
-
3. Operate through `$arch`, `$sage`, `$flow`, `$vet`, `$vibe`, `$build`
|
|
12
|
+
## Workflow
|
|
15
13
|
|
|
16
|
-
|
|
14
|
+
1. Start with `$arch` and turn the user's goal into a concrete architecture brief.
|
|
15
|
+
2. Continue with `$sage` to validate core stack choices against official docs or approved repo-backed sources.
|
|
16
|
+
3. Run `$flow` to map states, transitions, invariants, and blockers.
|
|
17
|
+
4. Run `$vet` to review trust boundaries, auth, data handling, and abuse paths.
|
|
18
|
+
5. Run `$vibe` to review developer and user experience quality.
|
|
19
|
+
6. Finish with `$build` to decide whether implementation is ready, what remains blocked, and what the exact next execution step should be.
|
|
17
20
|
|
|
18
|
-
|
|
19
|
-
- `ma status`
|
|
20
|
-
- `ma idea "..."`
|
|
21
|
-
- `ma run ...`
|
|
22
|
-
- `ma merge`
|
|
23
|
-
- `ma release`
|
|
24
|
-
- `ma doctor`
|
|
25
|
-
- `ma setup`
|
|
21
|
+
## Rules
|
|
26
22
|
|
|
27
|
-
|
|
23
|
+
- Stay inside Codex unless the user explicitly asks for repo-local helper commands.
|
|
24
|
+
- Keep the workflow architecture-first. Do not jump into code before the architecture and review lanes are grounded.
|
|
25
|
+
- Use approved discovery accelerators such as Ossium, Trendshift, Dev Hunt, Libraries.io, Open Hub, and Open-source Projects when you need faster OSS candidate discovery, then validate any promising project through upstream repos and official docs.
|
|
26
|
+
- Keep the `$sage` order explicit: known upstream sources first, discovery accelerators second, exact repo mapping third, approval only after upstream verification.
|
|
27
|
+
- Prefer official docs, upstream repos, and repo-configured GitMCP sources when validating tooling choices.
|
|
28
|
+
- End each lane with a clear result shape: decision, evidence, blockers, and exact next trigger.
|
|
28
29
|
|
|
29
|
-
|
|
30
|
-
- gate updates in `.omx/release.json`
|
|
31
|
-
- evidence updates under `.omx/evidence/`
|
|
32
|
-
- explicit blockers and next allowed triggers when work is blocked
|
|
30
|
+
## References
|
|
33
31
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
Do not treat helper commands as the primary story. The primary story is always the Codex session launched with `ma --madmax --high`.
|
|
32
|
+
- For release gates and branch policy, read `references/core-release-rules.md`.
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# Core Release Rules
|
|
2
|
+
|
|
3
|
+
- Required status fields live in `.ma/decisions.json` and `.ma/release.json`.
|
|
4
|
+
- `$build` is blocked unless:
|
|
5
|
+
- `idea_status = CLEAR`
|
|
6
|
+
- `architecture_status = APPROVED`
|
|
7
|
+
- `evidence_status = VERIFIED`
|
|
8
|
+
- `logic_status = GREEN`
|
|
9
|
+
- `security_status = GREEN`
|
|
10
|
+
- `experience_status = GREEN` or `WAIVED`
|
|
11
|
+
- Feature work merges into `development`, never directly into `prod`.
|
|
12
|
+
- Release promotion is allowed only from `development` or approved `release/*`.
|
|
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.
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: sage
|
|
3
|
+
description: "Use when the user wants evidence-backed technology choices, OSS evaluation, and source-grounded validation of the stack proposed in `$arch`."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Sage
|
|
7
|
+
|
|
8
|
+
Use this skill inside Codex to verify or challenge stack choices with real sources.
|
|
9
|
+
|
|
10
|
+
## Output
|
|
11
|
+
|
|
12
|
+
Produce:
|
|
13
|
+
- candidate tools, libraries, or services
|
|
14
|
+
- why each option fits or fails the architecture
|
|
15
|
+
- source-backed evidence from official docs, upstream repos, or approved GitMCP sources
|
|
16
|
+
- recommendation with tradeoffs
|
|
17
|
+
- unresolved gaps or missing evidence
|
|
18
|
+
- exact next trigger, usually `$flow`
|
|
19
|
+
|
|
20
|
+
## Rules
|
|
21
|
+
|
|
22
|
+
- Follow this order:
|
|
23
|
+
- use known upstream repos and official docs first when they already exist
|
|
24
|
+
- use discovery accelerators to find or narrow candidates
|
|
25
|
+
- map the selected candidate back to an exact upstream repo
|
|
26
|
+
- verify against upstream repos and official docs before approving it
|
|
27
|
+
- Use approved discovery accelerators when you need faster OSS candidate discovery:
|
|
28
|
+
- Ossium (`https://ossium.live/home`) for trending, curated, YC-backed, and GSoC-linked OSS discovery
|
|
29
|
+
- Trendshift (`https://trendshift.io/`) for rising GitHub engagement and topic momentum
|
|
30
|
+
- Dev Hunt (`https://devhunt.org/`) for newly launched developer tools
|
|
31
|
+
- Libraries.io (`https://libraries.io/`) for package/dependency metadata, with caution because its public data is scraped and not validated/curated for accuracy
|
|
32
|
+
- Open Hub (`https://openhub.net/`) for project activity, contributor, and comparison signals
|
|
33
|
+
- Open-source Projects (`https://www.opensourceprojects.dev/`) for curated OSS discovery and detailed project writeups
|
|
34
|
+
- Do not invent package capabilities or maturity claims.
|
|
35
|
+
- Prefer primary sources over summaries when validating technical details.
|
|
36
|
+
- Do not treat discovery listings alone as VERIFIED evidence; promote candidates to upstream repos and official docs before approving them.
|
|
37
|
+
- If the evidence is weak or contradictory, say so clearly and keep the recommendation conditional.
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: vet
|
|
3
|
+
description: "Use when the user wants a security and trust-boundary review of the current design before implementation or release."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Vet
|
|
7
|
+
|
|
8
|
+
Use this skill inside Codex to review security posture before the build lane.
|
|
9
|
+
|
|
10
|
+
## Output
|
|
11
|
+
|
|
12
|
+
Produce:
|
|
13
|
+
- trust boundaries
|
|
14
|
+
- authn/authz expectations
|
|
15
|
+
- sensitive data paths
|
|
16
|
+
- abuse cases and likely failure modes
|
|
17
|
+
- concrete mitigations
|
|
18
|
+
- release blockers vs acceptable risks
|
|
19
|
+
- exact next trigger, usually `$vibe`
|
|
20
|
+
|
|
21
|
+
## Rules
|
|
22
|
+
|
|
23
|
+
- Prioritize material risks over exhaustive but low-value checklists.
|
|
24
|
+
- Call out missing assumptions that affect security posture.
|
|
25
|
+
- Distinguish between must-fix blockers and documented accepted risk.
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: vibe
|
|
3
|
+
description: "Use when the user wants a DX and UX review of the planned workflow before implementation proceeds."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Vibe
|
|
7
|
+
|
|
8
|
+
Use this skill inside Codex to review whether the system will feel coherent for both operators and end users.
|
|
9
|
+
|
|
10
|
+
## Output
|
|
11
|
+
|
|
12
|
+
Produce:
|
|
13
|
+
- developer workflow risks
|
|
14
|
+
- user workflow risks
|
|
15
|
+
- complexity hotspots
|
|
16
|
+
- onboarding or operability friction
|
|
17
|
+
- simplifications that improve clarity
|
|
18
|
+
- exact next trigger, usually `$build`
|
|
19
|
+
|
|
20
|
+
## Rules
|
|
21
|
+
|
|
22
|
+
- Focus on concrete friction, not aesthetics-only feedback.
|
|
23
|
+
- Prefer fewer surfaces, fewer steps, and clearer operator outcomes.
|
|
24
|
+
- Preserve the architecture and security constraints established earlier in the flow.
|
package/scripts/doctor.js
CHANGED
|
@@ -7,8 +7,16 @@ const checks = [
|
|
|
7
7
|
["skills/index.json", fs.existsSync("skills/index.json")],
|
|
8
8
|
["dist/meta-architect-skills.tgz", fs.existsSync("dist/meta-architect-skills.tgz")],
|
|
9
9
|
[".codex/hooks.json", fs.existsSync(".codex/hooks.json")],
|
|
10
|
+
[".ma/decisions.json", fs.existsSync(".ma/decisions.json")],
|
|
11
|
+
[".ma/release.json", fs.existsSync(".ma/release.json")],
|
|
10
12
|
["docs/release-spec.md", fs.existsSync("docs/release-spec.md")],
|
|
13
|
+
[".agents/plugins/marketplace.json", fs.existsSync(".agents/plugins/marketplace.json")],
|
|
11
14
|
["plugins/meta-architect/.app.json", fs.existsSync("plugins/meta-architect/.app.json")],
|
|
15
|
+
[
|
|
16
|
+
"plugins/meta-architect/.codex-plugin/plugin.json",
|
|
17
|
+
fs.existsSync("plugins/meta-architect/.codex-plugin/plugin.json"),
|
|
18
|
+
],
|
|
19
|
+
["plugins/meta-architect/.mcp.json", fs.existsSync("plugins/meta-architect/.mcp.json")],
|
|
12
20
|
[
|
|
13
21
|
"missions/collaborative-whiteboard/mission.md",
|
|
14
22
|
fs.existsSync("missions/collaborative-whiteboard/mission.md"),
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
import fs from "node:fs/promises";
|
|
4
|
+
import path from "node:path";
|
|
5
|
+
import process from "node:process";
|
|
6
|
+
|
|
7
|
+
const repoRoot = process.cwd();
|
|
8
|
+
const skillsRoot = path.join(repoRoot, "skills");
|
|
9
|
+
const pluginRoot = path.join(repoRoot, "plugins", "meta-architect");
|
|
10
|
+
const pluginSkillsRoot = path.join(pluginRoot, "skills");
|
|
11
|
+
|
|
12
|
+
function parseArgs(argv) {
|
|
13
|
+
return {
|
|
14
|
+
check: argv.includes("--check"),
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
async function copyDir(src, dest) {
|
|
19
|
+
await fs.mkdir(dest, { recursive: true });
|
|
20
|
+
const entries = await fs.readdir(src, { withFileTypes: true });
|
|
21
|
+
for (const entry of entries) {
|
|
22
|
+
const srcPath = path.join(src, entry.name);
|
|
23
|
+
const destPath = path.join(dest, entry.name);
|
|
24
|
+
if (entry.isDirectory()) {
|
|
25
|
+
await copyDir(srcPath, destPath);
|
|
26
|
+
} else {
|
|
27
|
+
await fs.copyFile(srcPath, destPath);
|
|
28
|
+
await fs.chmod(destPath, 0o644);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
async function listSkillDirs(root) {
|
|
34
|
+
const entries = await fs.readdir(root, { withFileTypes: true }).catch(() => []);
|
|
35
|
+
return entries
|
|
36
|
+
.filter((entry) => entry.isDirectory())
|
|
37
|
+
.map((entry) => entry.name)
|
|
38
|
+
.sort();
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
async function syncPluginSkills() {
|
|
42
|
+
const skillDirs = await listSkillDirs(skillsRoot);
|
|
43
|
+
await fs.mkdir(pluginSkillsRoot, { recursive: true });
|
|
44
|
+
|
|
45
|
+
const existingPluginDirs = await listSkillDirs(pluginSkillsRoot);
|
|
46
|
+
for (const name of existingPluginDirs) {
|
|
47
|
+
if (!skillDirs.includes(name)) {
|
|
48
|
+
await fs.rm(path.join(pluginSkillsRoot, name), { recursive: true, force: true });
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
for (const name of skillDirs) {
|
|
53
|
+
const src = path.join(skillsRoot, name);
|
|
54
|
+
const dest = path.join(pluginSkillsRoot, name);
|
|
55
|
+
await fs.rm(dest, { recursive: true, force: true });
|
|
56
|
+
await copyDir(src, dest);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
return skillDirs;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
async function verifyPluginSkills() {
|
|
63
|
+
const skillDirs = await listSkillDirs(skillsRoot);
|
|
64
|
+
const pluginDirs = await listSkillDirs(pluginSkillsRoot);
|
|
65
|
+
if (skillDirs.length !== pluginDirs.length) {
|
|
66
|
+
throw new Error("Plugin skill mirror drift: directory count mismatch");
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
for (let index = 0; index < skillDirs.length; index += 1) {
|
|
70
|
+
if (skillDirs[index] !== pluginDirs[index]) {
|
|
71
|
+
throw new Error(
|
|
72
|
+
`Plugin skill mirror drift: expected ${skillDirs[index]}, found ${pluginDirs[index]}`,
|
|
73
|
+
);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
async function main() {
|
|
79
|
+
const args = parseArgs(process.argv.slice(2));
|
|
80
|
+
if (args.check) {
|
|
81
|
+
await verifyPluginSkills();
|
|
82
|
+
console.log(pluginSkillsRoot);
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
await syncPluginSkills();
|
|
87
|
+
console.log(pluginSkillsRoot);
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
main().catch((error) => {
|
|
91
|
+
console.error(error.message);
|
|
92
|
+
process.exitCode = 1;
|
|
93
|
+
});
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
import process from "node:process";
|
|
4
|
+
import { installSkills, installSupportBundle } from "../src/skill-installer.js";
|
|
5
|
+
|
|
6
|
+
async function main() {
|
|
7
|
+
if (process.env.MA_SKIP_AUTO_INSTALL === "1") {
|
|
8
|
+
console.log("meta-architect: skipped Codex skill auto-install");
|
|
9
|
+
return;
|
|
10
|
+
}
|
|
11
|
+
|
|
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}`);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
main().catch((error) => {
|
|
21
|
+
console.error(`meta-architect: failed to install Codex skills: ${error.message}`);
|
|
22
|
+
process.exitCode = 1;
|
|
23
|
+
});
|