wize-dev-kit 0.15.0 → 0.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ARCH.md +24 -77
- package/CHANGELOG.md +9 -0
- package/DECISIONS.md +1 -27
- package/README.md +4 -0
- package/ROSTER.md +3 -11
- package/adapters/README.md +7 -8
- package/adapters/antigravity/README.md +5 -5
- package/adapters/claude-code/README.md +1 -1
- package/adapters/codex/README.md +5 -5
- package/adapters/codex/adapter.yaml +1 -1
- package/adapters/codex/render.js +1 -1
- package/adapters/continue/README.md +5 -5
- package/adapters/cursor/README.md +2 -2
- package/adapters/generic/README.md +1 -1
- package/adapters/kimi-code/README.md +5 -5
- package/adapters/kimi-code/render.js +2 -2
- package/adapters/opencode/README.md +3 -3
- package/adapters/opencode/render.js +1 -27
- package/adapters/windsurf/README.md +3 -3
- package/package.json +1 -1
- package/schemas/agent.schema.json +2 -2
- package/schemas/workflow.schema.json +1 -1
- package/src/app-overlay/wize-app-release-channels/workflow.md +0 -2
- package/src/app-overlay/wize-app-scaffold/workflow.md +0 -2
- package/src/app-overlay/wize-app-store-listing/workflow.md +0 -2
- package/src/builder-skills/wize-create-agent/workflow.md +0 -2
- package/src/builder-skills/wize-create-skill/workflow.md +0 -2
- package/src/builder-skills/wize-create-workflow/workflow.md +0 -2
- package/src/core-skills/module.yaml +3 -0
- package/src/core-skills/wize-advanced-elicitation/skill.md +0 -2
- package/src/core-skills/wize-brainstorming/skill.md +0 -2
- package/src/core-skills/wize-eli5/skill.md +72 -0
- package/src/core-skills/wize-review-adversarial/skill.md +0 -3
- package/src/core-skills/wize-shard-doc/skill.md +0 -2
- package/src/method-skills/1-analysis/wize-agent-analyst/agent.yaml +0 -3
- package/src/method-skills/1-analysis/wize-document-project/workflow.md +20 -213
- package/src/method-skills/1-analysis/wize-prfaq/workflow.md +11 -152
- package/src/method-skills/1-analysis/wize-product-brief/workflow.md +19 -92
- package/src/method-skills/1-analysis/wize-research/workflow.md +12 -39
- package/src/method-skills/1-analysis/wize-trigger-map/workflow.md +16 -82
- package/src/method-skills/2-plan-workflows/wize-create-prd/workflow.md +23 -135
- package/src/method-skills/2-plan-workflows/wize-ux-design/workflow.md +28 -134
- package/src/method-skills/2-plan-workflows/wize-ux-scenarios/workflow.md +15 -93
- package/src/method-skills/2-plan-workflows/wize-validate-prd/workflow.md +12 -108
- package/src/method-skills/3-solutioning/wize-check-implementation-readiness/workflow.md +11 -103
- package/src/method-skills/3-solutioning/wize-create-architecture/workflow.md +48 -55
- package/src/method-skills/3-solutioning/wize-create-epics-and-stories/workflow.md +15 -154
- package/src/method-skills/3-solutioning/wize-design-system/workflow.md +22 -184
- package/src/method-skills/3-solutioning/wize-nfr-principles/workflow.md +17 -145
- package/src/method-skills/3-solutioning/wize-tech-vision/workflow.md +22 -130
- package/src/method-skills/4-implementation/wize-agent-dev/persona.md +0 -12
- package/src/method-skills/4-implementation/wize-code-review/workflow.md +12 -54
- package/src/method-skills/4-implementation/wize-create-story/workflow.md +10 -154
- package/src/method-skills/4-implementation/wize-dev-story/workflow.md +17 -185
- package/src/method-skills/4-implementation/wize-quick-dev/workflow.md +18 -136
- package/src/method-skills/4-implementation/wize-retrospective/workflow.md +10 -114
- package/src/method-skills/4-implementation/wize-sprint-planning/workflow.md +11 -78
- package/src/method-skills/4-implementation/wize-sprint-status/workflow.md +11 -45
- package/src/method-skills/module.yaml +0 -28
- package/src/orchestrator-skills/module.yaml +1 -7
- package/src/orchestrator-skills/wize-help/skill.md +67 -227
- package/src/orchestrator-skills/wize-onboarding/workflow.md +14 -78
- package/src/orchestrator-skills/wize-orchestrator/agent.yaml +0 -2
- package/src/orchestrator-skills/wize-orchestrator/persona.md +3 -44
- package/src/orchestrator-skills/wize-party-mode/workflow.md +0 -2
- package/src/tea-skills/wize-tea-design/workflow.md +13 -107
- package/src/tea-skills/wize-tea-gate/workflow.md +25 -118
- package/src/tea-skills/wize-tea-nfr/workflow.md +14 -107
- package/src/tea-skills/wize-tea-review/workflow.md +13 -123
- package/src/tea-skills/wize-tea-risk/workflow.md +10 -113
- package/src/tea-skills/wize-tea-trace/workflow.md +12 -86
- package/src/web-overlay/wize-web-deploy/workflow.md +0 -2
- package/src/web-overlay/wize-web-scaffold/workflow.md +0 -2
- package/src/web-overlay/wize-web-seo-audit/workflow.md +0 -2
- package/tools/check-eli5-all-adapters.js +50 -0
- package/tools/installer/onboarding.js +20 -14
- package/tools/installer/render-shared.js +15 -159
- package/tools/installer/setup-helpers.js +0 -1
- package/tools/installer/validators/run-all.js +2 -3
- package/tools/installer/wize-cli.js +70 -500
- package/AGENTS.md +0 -37
- package/README.es.md +0 -295
- package/README.pt-BR.md +0 -293
- package/adapters/hermes/README.md +0 -23
- package/adapters/hermes/adapter.yaml +0 -8
- package/adapters/hermes/render.js +0 -17
- package/docs/harnesses/antigravity.md +0 -20
- package/docs/harnesses/antigravity.pt-BR.md +0 -20
- package/docs/harnesses/claude-code.md +0 -23
- package/docs/harnesses/claude-code.pt-BR.md +0 -23
- package/docs/harnesses/codex.md +0 -21
- package/docs/harnesses/codex.pt-BR.md +0 -21
- package/docs/harnesses/continue.md +0 -21
- package/docs/harnesses/continue.pt-BR.md +0 -21
- package/docs/harnesses/cursor.md +0 -22
- package/docs/harnesses/cursor.pt-BR.md +0 -22
- package/docs/harnesses/generic.md +0 -20
- package/docs/harnesses/generic.pt-BR.md +0 -20
- package/docs/harnesses/hermes.md +0 -26
- package/docs/harnesses/hermes.pt-BR.md +0 -26
- package/docs/harnesses/kimi-code.md +0 -19
- package/docs/harnesses/kimi-code.pt-BR.md +0 -19
- package/docs/harnesses/opencode.md +0 -31
- package/docs/harnesses/opencode.pt-BR.md +0 -31
- package/docs/harnesses/windsurf.md +0 -22
- package/docs/harnesses/windsurf.pt-BR.md +0 -22
- package/src/core-skills/wize-customize/skill.md +0 -116
- package/src/core-skills/wize-editorial-review-prose/skill.md +0 -94
- package/src/core-skills/wize-editorial-review-structure/skill.md +0 -99
- package/src/core-skills/wize-grill/skill.md +0 -77
- package/src/core-skills/wize-index-docs/skill.md +0 -119
- package/src/core-skills/wize-pre-pr-check/skill.md +0 -134
- package/src/core-skills/wize-review-edge-case-hunter/skill.md +0 -115
- package/src/core-skills/wize-spec/assets/headless-schemas.md +0 -39
- package/src/core-skills/wize-spec/assets/spec-template.md +0 -40
- package/src/core-skills/wize-spec/customize.toml +0 -20
- package/src/core-skills/wize-spec/skill.md +0 -112
- package/src/method-skills/1-analysis/wize-document-project/documentation-requirements.csv +0 -12
- package/src/method-skills/1-analysis/wize-document-project/templates/api-contracts-template.md +0 -38
- package/src/method-skills/1-analysis/wize-document-project/templates/architecture-template.md +0 -54
- package/src/method-skills/1-analysis/wize-document-project/templates/component-inventory-template.md +0 -40
- package/src/method-skills/1-analysis/wize-document-project/templates/contribution-guide-template.md +0 -34
- package/src/method-skills/1-analysis/wize-document-project/templates/data-models-template.md +0 -36
- package/src/method-skills/1-analysis/wize-document-project/templates/deep-dive-template.md +0 -312
- package/src/method-skills/1-analysis/wize-document-project/templates/deployment-guide-template.md +0 -42
- package/src/method-skills/1-analysis/wize-document-project/templates/development-guide-template.md +0 -61
- package/src/method-skills/1-analysis/wize-document-project/templates/index-template.md +0 -185
- package/src/method-skills/1-analysis/wize-document-project/templates/project-overview-template.md +0 -110
- package/src/method-skills/1-analysis/wize-document-project/templates/project-scan-report-schema.json +0 -159
- package/src/method-skills/1-analysis/wize-document-project/templates/source-tree-template.md +0 -142
- package/src/method-skills/1-analysis/wize-domain-research/customize.toml +0 -14
- package/src/method-skills/1-analysis/wize-domain-research/domain-steps/step-01-init.md +0 -49
- package/src/method-skills/1-analysis/wize-domain-research/domain-steps/step-02-domain-analysis.md +0 -39
- package/src/method-skills/1-analysis/wize-domain-research/domain-steps/step-03-competitive-landscape.md +0 -39
- package/src/method-skills/1-analysis/wize-domain-research/domain-steps/step-04-regulatory-focus.md +0 -39
- package/src/method-skills/1-analysis/wize-domain-research/domain-steps/step-05-technical-trends.md +0 -39
- package/src/method-skills/1-analysis/wize-domain-research/domain-steps/step-06-research-synthesis.md +0 -43
- package/src/method-skills/1-analysis/wize-domain-research/research.template.md +0 -31
- package/src/method-skills/1-analysis/wize-domain-research/workflow.md +0 -58
- package/src/method-skills/1-analysis/wize-market-research/customize.toml +0 -14
- package/src/method-skills/1-analysis/wize-market-research/research.template.md +0 -31
- package/src/method-skills/1-analysis/wize-market-research/steps/step-01-init.md +0 -57
- package/src/method-skills/1-analysis/wize-market-research/steps/step-02-customer-behavior.md +0 -39
- package/src/method-skills/1-analysis/wize-market-research/steps/step-03-customer-pain-points.md +0 -37
- package/src/method-skills/1-analysis/wize-market-research/steps/step-04-customer-decisions.md +0 -39
- package/src/method-skills/1-analysis/wize-market-research/steps/step-05-competitive-analysis.md +0 -37
- package/src/method-skills/1-analysis/wize-market-research/steps/step-06-research-completion.md +0 -47
- package/src/method-skills/1-analysis/wize-market-research/workflow.md +0 -66
- package/src/method-skills/1-analysis/wize-refresh-knowledge/workflow.md +0 -129
- package/src/method-skills/1-analysis/wize-technical-research/customize.toml +0 -14
- package/src/method-skills/1-analysis/wize-technical-research/research.template.md +0 -31
- package/src/method-skills/1-analysis/wize-technical-research/technical-steps/step-01-init.md +0 -49
- package/src/method-skills/1-analysis/wize-technical-research/technical-steps/step-02-technical-overview.md +0 -45
- package/src/method-skills/1-analysis/wize-technical-research/technical-steps/step-03-integration-patterns.md +0 -39
- package/src/method-skills/1-analysis/wize-technical-research/technical-steps/step-04-architectural-patterns.md +0 -39
- package/src/method-skills/1-analysis/wize-technical-research/technical-steps/step-05-implementation-research.md +0 -42
- package/src/method-skills/1-analysis/wize-technical-research/technical-steps/step-06-research-synthesis.md +0 -46
- package/src/method-skills/1-analysis/wize-technical-research/workflow.md +0 -60
- package/src/method-skills/2-plan-workflows/wize-edit-prd/workflow.md +0 -110
- package/src/method-skills/3-solutioning/wize-create-architecture/architecture-decision-template.md +0 -41
- package/src/method-skills/3-solutioning/wize-create-architecture/customize.toml +0 -20
- package/src/method-skills/3-solutioning/wize-create-architecture/steps/step-01-init.md +0 -95
- package/src/method-skills/3-solutioning/wize-create-architecture/steps/step-01b-continue.md +0 -32
- package/src/method-skills/3-solutioning/wize-create-architecture/steps/step-02-context.md +0 -126
- package/src/method-skills/3-solutioning/wize-create-architecture/steps/step-03-starter.md +0 -110
- package/src/method-skills/3-solutioning/wize-create-architecture/steps/step-04-decisions.md +0 -129
- package/src/method-skills/3-solutioning/wize-create-architecture/steps/step-05-patterns.md +0 -109
- package/src/method-skills/3-solutioning/wize-create-architecture/steps/step-06-structure.md +0 -97
- package/src/method-skills/3-solutioning/wize-create-architecture/steps/step-07-validation.md +0 -124
- package/src/method-skills/3-solutioning/wize-create-architecture/steps/step-08-complete.md +0 -59
- package/src/method-skills/3-solutioning/wize-project-context/workflow.md +0 -120
- package/src/method-skills/4-implementation/wize-changelog/workflow.md +0 -184
- package/src/method-skills/4-implementation/wize-checkpoint-preview/workflow.md +0 -117
- package/src/method-skills/4-implementation/wize-code-review/customize.toml +0 -21
- package/src/method-skills/4-implementation/wize-code-review/steps/step-01-gather-context.md +0 -64
- package/src/method-skills/4-implementation/wize-code-review/steps/step-02-review.md +0 -40
- package/src/method-skills/4-implementation/wize-code-review/steps/step-03-triage.md +0 -43
- package/src/method-skills/4-implementation/wize-code-review/steps/step-04-present.md +0 -100
- package/src/method-skills/4-implementation/wize-correct-course/workflow.md +0 -93
- package/src/method-skills/4-implementation/wize-investigate/workflow.md +0 -123
- package/src/method-skills/4-implementation/wize-release/workflow.md +0 -162
- package/src/orchestrator-skills/wize/skill.md +0 -164
- package/src/orchestrator-skills/wize-check/skill.md +0 -98
- package/src/security-overlay/_shared/allowlist.js +0 -154
- package/src/security-overlay/_shared/backlog.js +0 -169
- package/src/security-overlay/_shared/cli-runner.js +0 -87
- package/src/security-overlay/_shared/cvss.js +0 -108
- package/src/security-overlay/_shared/detect.js +0 -125
- package/src/security-overlay/_shared/install-script.js +0 -205
- package/src/security-overlay/_shared/invoke-phase.js +0 -86
- package/src/security-overlay/_shared/owasp.js +0 -56
- package/src/security-overlay/_shared/partial.js +0 -225
- package/src/security-overlay/_shared/preflight.js +0 -175
- package/src/security-overlay/_shared/scope-gate.js +0 -172
- package/src/security-overlay/_shared/scope-parser.js +0 -147
- package/src/security-overlay/agents/red-teamer/agent.yaml +0 -54
- package/src/security-overlay/agents/red-teamer/persona.md +0 -49
- package/src/security-overlay/data/common.txt +0 -115
- package/src/security-overlay/data/owasp-top10.json +0 -15
- package/src/security-overlay/data/tool-allowlist.json +0 -31
- package/src/security-overlay/skills/wize-sec-enumerate/scripts/run-enumerate.js +0 -180
- package/src/security-overlay/skills/wize-sec-enumerate/skill.md +0 -34
- package/src/security-overlay/skills/wize-sec-exploit/data/common.txt +0 -117
- package/src/security-overlay/skills/wize-sec-exploit/scripts/run-ffuf.js +0 -147
- package/src/security-overlay/skills/wize-sec-exploit/scripts/run-nikto.js +0 -145
- package/src/security-overlay/skills/wize-sec-exploit/scripts/run-nuclei.js +0 -176
- package/src/security-overlay/skills/wize-sec-exploit/scripts/run-sqlmap.js +0 -139
- package/src/security-overlay/skills/wize-sec-pentest/scripts/run-pipeline.js +0 -184
- package/src/security-overlay/skills/wize-sec-pentest/skill.md +0 -54
- package/src/security-overlay/skills/wize-sec-recon/scripts/run-gitleaks.js +0 -139
- package/src/security-overlay/skills/wize-sec-recon/scripts/run-osv.js +0 -227
- package/src/security-overlay/skills/wize-sec-recon/scripts/run-recon.js +0 -162
- package/src/security-overlay/skills/wize-sec-recon/skill.md +0 -37
- package/src/security-overlay/skills/wize-sec-report/scripts/render-report.js +0 -1033
- package/src/security-overlay/skills/wize-sec-scope/scripts/generate-scope.js +0 -106
- package/src/security-overlay/skills/wize-sec-scope/skill.md +0 -52
- package/src/tea-skills/wize-qa-generate-e2e-tests/workflow.md +0 -121
- package/tools/installer/baseline.js +0 -133
- package/tools/installer/commands/agent.js +0 -197
- package/tools/installer/commands/doctor.js +0 -320
- package/tools/installer/commands/document-project.js +0 -93
- package/tools/installer/commands/sync.js +0 -45
- package/tools/installer/commands/update.js +0 -172
- package/tools/installer/document-project/batch-scanner.js +0 -93
- package/tools/installer/document-project/classify.js +0 -170
- package/tools/installer/document-project/modes/deep-dive.js +0 -196
- package/tools/installer/document-project/modes/full-rescan.js +0 -15
- package/tools/installer/document-project/modes/initial-scan.js +0 -100
- package/tools/installer/document-project/modes/quick.js +0 -211
- package/tools/installer/document-project/render-index.js +0 -101
- package/tools/installer/document-project/state.js +0 -110
- package/tools/installer/version-check.js +0 -117
|
@@ -12,51 +12,11 @@ const fs = require('node:fs');
|
|
|
12
12
|
const path = require('node:path');
|
|
13
13
|
const { walkAgents, walkWorkflows, walkSkills } = require('./validators/walk.js');
|
|
14
14
|
|
|
15
|
-
// Shared block-scalar reader used by both readYamlField (agent.yaml) and
|
|
16
|
-
// readFrontmatter (skill.md / workflow.md). Returns { value, nextIndex }.
|
|
17
|
-
function readBlockScalar(lines, startIndex, folded) {
|
|
18
|
-
const collected = [];
|
|
19
|
-
let baseIndent = null;
|
|
20
|
-
let i = startIndex;
|
|
21
|
-
for (; i < lines.length; i++) {
|
|
22
|
-
const line = lines[i];
|
|
23
|
-
if (line.trim() === '') { collected.push(''); continue; }
|
|
24
|
-
const indent = line.match(/^(\s*)/)[1].length;
|
|
25
|
-
if (indent === 0) break; // dedent to a sibling top-level key ends the block
|
|
26
|
-
if (baseIndent === null) baseIndent = indent;
|
|
27
|
-
collected.push(line.slice(baseIndent));
|
|
28
|
-
}
|
|
29
|
-
while (collected.length && collected[collected.length - 1] === '') collected.pop();
|
|
30
|
-
if (folded) {
|
|
31
|
-
const value = collected.reduce((acc, ln, idx) => {
|
|
32
|
-
if (idx === 0) return ln;
|
|
33
|
-
if (ln === '' || collected[idx - 1] === '') return acc + '\n' + ln;
|
|
34
|
-
return acc + ' ' + ln;
|
|
35
|
-
}, '').trim();
|
|
36
|
-
return { value, nextIndex: i };
|
|
37
|
-
}
|
|
38
|
-
return { value: collected.join('\n').trim(), nextIndex: i };
|
|
39
|
-
}
|
|
40
|
-
|
|
41
15
|
function readYamlField(content, field) {
|
|
42
|
-
const
|
|
43
|
-
const
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
if (!m) continue;
|
|
47
|
-
const inline = m[1].trim();
|
|
48
|
-
|
|
49
|
-
// Block scalar (| literal, > folded) with optional chomp/indent indicator.
|
|
50
|
-
const block = inline.match(/^([|>])[+-]?\d*\s*$/);
|
|
51
|
-
if (block) {
|
|
52
|
-
return readBlockScalar(lines, i + 1, block[1] === '>').value;
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
// Inline scalar: quoted or plain.
|
|
56
|
-
const q = inline.match(/^"([^"]*)"$/) || inline.match(/^'([^']*)'$/);
|
|
57
|
-
return (q ? q[1] : inline).trim();
|
|
58
|
-
}
|
|
59
|
-
return null;
|
|
16
|
+
const re = new RegExp('^' + field + ':\\s*(?:"([^"]*)"|\'([^\']*)\'|(.*?))\\s*$', 'm');
|
|
17
|
+
const m = content.match(re);
|
|
18
|
+
if (!m) return null;
|
|
19
|
+
return (m[1] || m[2] || m[3] || '').trim();
|
|
60
20
|
}
|
|
61
21
|
|
|
62
22
|
function readFrontmatter(content) {
|
|
@@ -65,25 +25,9 @@ function readFrontmatter(content) {
|
|
|
65
25
|
if (end === -1) return {};
|
|
66
26
|
const lines = content.slice(3, end).split('\n');
|
|
67
27
|
const out = {};
|
|
68
|
-
for (
|
|
69
|
-
const line = lines[i];
|
|
28
|
+
for (const line of lines) {
|
|
70
29
|
const m = line.match(/^([a-zA-Z_][a-zA-Z0-9_-]*):\s*(.*?)\s*$/);
|
|
71
|
-
if (
|
|
72
|
-
const key = m[1];
|
|
73
|
-
const inline = m[2].trim();
|
|
74
|
-
|
|
75
|
-
// Block scalar (| literal, > folded) with optional chomp/indent indicator.
|
|
76
|
-
const block = inline.match(/^([|>])[+-]?\d*\s*$/);
|
|
77
|
-
if (block) {
|
|
78
|
-
const result = readBlockScalar(lines, i + 1, block[1] === '>');
|
|
79
|
-
out[key] = result.value;
|
|
80
|
-
i = result.nextIndex - 1; // -1 because the for loop will increment
|
|
81
|
-
continue;
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
// Inline scalar: quoted or plain.
|
|
85
|
-
const q = inline.match(/^"([^"]*)"$/) || inline.match(/^'([^']*)'$/);
|
|
86
|
-
out[key] = (q ? q[1] : inline).trim();
|
|
30
|
+
if (m) out[m[1]] = m[2].replace(/^"|"$/g, '').replace(/^'|'$/g, '');
|
|
87
31
|
}
|
|
88
32
|
return out;
|
|
89
33
|
}
|
|
@@ -109,42 +53,6 @@ function ensureDir(dir) {
|
|
|
109
53
|
fs.mkdirSync(dir, { recursive: true });
|
|
110
54
|
}
|
|
111
55
|
|
|
112
|
-
// Companion files (steps/, templates/, data/, *.csv, *-template.md,
|
|
113
|
-
// customize.toml, research.template.md, etc.) that micro-file workflows
|
|
114
|
-
// reference from their body. We must copy these alongside the SKILL.md so
|
|
115
|
-
// the IDE can resolve paths like "./steps/step-01-init.md" at runtime.
|
|
116
|
-
const SKIP_NAMES = new Set(['.DS_Store', 'Thumbs.db', 'node_modules', '.git']);
|
|
117
|
-
const SKIP_FILES = new Set([
|
|
118
|
-
'skill.md', 'workflow.md', 'agent.yaml', 'persona.md',
|
|
119
|
-
'package.json', 'package-lock.json'
|
|
120
|
-
]);
|
|
121
|
-
|
|
122
|
-
function isCompanion(entry) {
|
|
123
|
-
if (entry.name.startsWith('.')) return false;
|
|
124
|
-
if (SKIP_NAMES.has(entry.name)) return false;
|
|
125
|
-
if (SKIP_FILES.has(entry.name)) return false;
|
|
126
|
-
if (entry.name.endsWith('.test.js')) return false;
|
|
127
|
-
return true;
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
function copyCompanionFiles(srcDir, destDir, written, relPrefix = '') {
|
|
131
|
-
if (!srcDir || !fs.existsSync(srcDir)) return;
|
|
132
|
-
for (const entry of fs.readdirSync(srcDir, { withFileTypes: true })) {
|
|
133
|
-
if (!isCompanion(entry)) continue;
|
|
134
|
-
const s = path.join(srcDir, entry.name);
|
|
135
|
-
const d = path.join(destDir, entry.name);
|
|
136
|
-
const rel = relPrefix ? `${relPrefix}/${entry.name}` : entry.name;
|
|
137
|
-
if (entry.isDirectory()) {
|
|
138
|
-
ensureDir(d);
|
|
139
|
-
copyCompanionFiles(s, d, written, rel);
|
|
140
|
-
} else if (entry.isFile()) {
|
|
141
|
-
ensureDir(path.dirname(d));
|
|
142
|
-
fs.copyFileSync(s, d);
|
|
143
|
-
written.push(rel);
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
|
|
148
56
|
// Walks the kit and returns a flat array of "assets" the adapters can render.
|
|
149
57
|
// Each asset has: { kind: 'agent'|'workflow'|'skill', code, name, title, description, body, overlay }
|
|
150
58
|
function collectAssets(kitRoot, { profiles = ['core'] } = {}) {
|
|
@@ -161,7 +69,7 @@ function collectAssets(kitRoot, { profiles = ['core'] } = {}) {
|
|
|
161
69
|
if (!code || !name) continue;
|
|
162
70
|
const personaPath = path.join(dir, 'persona.md');
|
|
163
71
|
const persona = fs.existsSync(personaPath) ? fs.readFileSync(personaPath, 'utf-8') : '';
|
|
164
|
-
out.push({ kind: 'agent', code, name, title, description, body: persona || description, overlay: null
|
|
72
|
+
out.push({ kind: 'agent', code, name, title, description, body: persona || description, overlay: null });
|
|
165
73
|
}
|
|
166
74
|
|
|
167
75
|
for (const wfPath of walkWorkflows(kitRoot)) {
|
|
@@ -170,18 +78,14 @@ function collectAssets(kitRoot, { profiles = ['core'] } = {}) {
|
|
|
170
78
|
if (!fm.code) continue;
|
|
171
79
|
if (fm.overlay === 'web' && !profSet.has('web-overlay')) continue;
|
|
172
80
|
if (fm.overlay === 'app' && !profSet.has('app-overlay')) continue;
|
|
173
|
-
if (fm.overlay === 'security' && !profSet.has('security-overlay')) continue;
|
|
174
81
|
out.push({
|
|
175
82
|
kind: 'workflow',
|
|
176
83
|
code: fm.code,
|
|
177
84
|
name: fm.name || fm.code,
|
|
178
85
|
title: fm.phase || fm.gate || '',
|
|
179
|
-
description:
|
|
86
|
+
description: `${fm.phase || fm.gate || 'workflow'}: ${fm.name || fm.code}`,
|
|
180
87
|
body: bodyAfterFrontmatter(content),
|
|
181
|
-
overlay: fm.overlay || null
|
|
182
|
-
owner: fm.owner || null,
|
|
183
|
-
subtask: fm.subtask === 'true',
|
|
184
|
-
srcDir: path.dirname(wfPath)
|
|
88
|
+
overlay: fm.overlay || null
|
|
185
89
|
});
|
|
186
90
|
}
|
|
187
91
|
|
|
@@ -189,20 +93,14 @@ function collectAssets(kitRoot, { profiles = ['core'] } = {}) {
|
|
|
189
93
|
const content = fs.readFileSync(skPath, 'utf-8');
|
|
190
94
|
const fm = readFrontmatter(content);
|
|
191
95
|
if (!fm.code) continue;
|
|
192
|
-
if (fm.overlay === 'web' && !profSet.has('web-overlay')) continue;
|
|
193
|
-
if (fm.overlay === 'app' && !profSet.has('app-overlay')) continue;
|
|
194
|
-
if (fm.overlay === 'security' && !profSet.has('security-overlay')) continue;
|
|
195
96
|
out.push({
|
|
196
97
|
kind: 'skill',
|
|
197
98
|
code: fm.code,
|
|
198
99
|
name: fm.name || fm.code,
|
|
199
100
|
title: fm.module || '',
|
|
200
|
-
description: fm.
|
|
101
|
+
description: fm.module ? `${fm.module} skill: ${fm.name || fm.code}` : (fm.name || fm.code),
|
|
201
102
|
body: bodyAfterFrontmatter(content),
|
|
202
|
-
overlay:
|
|
203
|
-
owner: fm.owner || null,
|
|
204
|
-
subtask: fm.subtask === 'true',
|
|
205
|
-
srcDir: path.dirname(skPath)
|
|
103
|
+
overlay: null
|
|
206
104
|
});
|
|
207
105
|
}
|
|
208
106
|
|
|
@@ -242,10 +140,6 @@ function renderAnthropicSkills(kitRoot, targetDir, opts = {}) {
|
|
|
242
140
|
ensureDir(skillDir);
|
|
243
141
|
fs.writeFileSync(path.join(skillDir, 'SKILL.md'), content, 'utf-8');
|
|
244
142
|
written.push(`${a.code}/SKILL.md`);
|
|
245
|
-
// Copy companion files (steps/, templates/, data/, *.csv, customize.toml,
|
|
246
|
-
// *-template.md, research.template.md, etc.) so micro-file workflows can
|
|
247
|
-
// resolve relative paths from inside the SKILL body.
|
|
248
|
-
copyCompanionFiles(a.srcDir, skillDir, written, a.code);
|
|
249
143
|
}
|
|
250
144
|
}
|
|
251
145
|
return { written, skipped: [] };
|
|
@@ -253,30 +147,9 @@ function renderAnthropicSkills(kitRoot, targetDir, opts = {}) {
|
|
|
253
147
|
|
|
254
148
|
// Convenience emitter for a root-level AGENTS.md — read by Codex, Cursor,
|
|
255
149
|
// Windsurf and Antigravity as a baseline pointer to the kit's deeper docs.
|
|
256
|
-
// Canonical roster order so AGENTS.md is deterministic regardless of the
|
|
257
|
-
// filesystem walk order. Codes not listed sort last, alphabetically.
|
|
258
|
-
const AGENT_ORDER = [
|
|
259
|
-
'wize-orchestrator',
|
|
260
|
-
'wize-agent-analyst',
|
|
261
|
-
'wize-agent-tech-writer',
|
|
262
|
-
'wize-agent-pm',
|
|
263
|
-
'wize-agent-ux-designer',
|
|
264
|
-
'wize-agent-solution-strategist',
|
|
265
|
-
'wize-agent-architect',
|
|
266
|
-
'wize-agent-test-architect',
|
|
267
|
-
'wize-agent-dev',
|
|
268
|
-
'wize-sec-red-teamer'
|
|
269
|
-
];
|
|
270
|
-
|
|
271
150
|
function renderAgentsMd(kitRoot, projectRoot, opts = {}) {
|
|
272
151
|
const assets = collectAssets(kitRoot, opts);
|
|
273
|
-
const
|
|
274
|
-
const i = AGENT_ORDER.indexOf(code);
|
|
275
|
-
return i === -1 ? AGENT_ORDER.length : i;
|
|
276
|
-
};
|
|
277
|
-
const agents = assets
|
|
278
|
-
.filter(a => a.kind === 'agent')
|
|
279
|
-
.sort((a, b) => rank(a.code) - rank(b.code) || a.code.localeCompare(b.code));
|
|
152
|
+
const agents = assets.filter(a => a.kind === 'agent');
|
|
280
153
|
const file = path.join(projectRoot, 'AGENTS.md');
|
|
281
154
|
if (fs.existsSync(file) && !opts.overwrite) {
|
|
282
155
|
return { written: [], skipped: ['AGENTS.md (already present; not overwritten)'] };
|
|
@@ -286,31 +159,15 @@ function renderAgentsMd(kitRoot, projectRoot, opts = {}) {
|
|
|
286
159
|
'',
|
|
287
160
|
'This repo is wired with the [`wize-dev-kit`](https://www.npmjs.com/package/wize-dev-kit).',
|
|
288
161
|
'Detailed artifacts live under `.wize/`. The agents below are activated through your AI IDE',
|
|
289
|
-
'using slash commands (Claude Code, Codex, Cursor, Windsurf, Antigravity
|
|
290
|
-
'',
|
|
291
|
-
'## Operating context',
|
|
292
|
-
'',
|
|
293
|
-
'Treat `.wize/`, this `AGENTS.md`, and the installed `wize-*` skills as your operating',
|
|
294
|
-
'instructions and persistent memory — not background reading. Read project state before',
|
|
295
|
-
'acting; write what you change back into `.wize/` so the next session inherits it.',
|
|
296
|
-
'',
|
|
297
|
-
'Before editing, classify the demand via `/wize` (or `/wize-help`): **Quick Dev** (small, predictable,',
|
|
298
|
-
'trivially scoped, no new feature / architecture / UX / security) or **Full Lifecycle**. Never pick',
|
|
299
|
-
'Quick Dev just to skip artifacts.',
|
|
300
|
-
'',
|
|
301
|
-
'When a skill fans out to subagents, match the model tier to the task: a lightweight tier',
|
|
302
|
-
'for mechanical work (reads, greps, formatting, short summaries), the standard tier for',
|
|
303
|
-
'implementation and review, a high-capability tier only for architecture, critical',
|
|
304
|
-
'decisions, or final adversarial review.',
|
|
162
|
+
'using slash commands (Claude Code, Codex, Cursor, Windsurf, Antigravity all read this file).',
|
|
305
163
|
'',
|
|
306
164
|
'## Roster',
|
|
307
165
|
''
|
|
308
166
|
];
|
|
309
167
|
for (const a of agents) {
|
|
310
|
-
|
|
311
|
-
lines.push(`- **${a.name}** (\`${a.code}\`)${optIn} — ${a.title}. ${clipOneLine(a.description, 180)}`);
|
|
168
|
+
lines.push(`- **${a.name}** (\`${a.code}\`) — ${a.title}. ${clipOneLine(a.description, 180)}`);
|
|
312
169
|
}
|
|
313
|
-
lines.push('', '## Where to start', '', 'Activate the orchestrator:
|
|
170
|
+
lines.push('', '## Where to start', '', 'Activate the orchestrator: `wize-orchestrator` (Wizer). Then ask `/wize-help`.', '');
|
|
314
171
|
|
|
315
172
|
if (opts.dryRun) return { written: ['[dry-run] AGENTS.md'], skipped: [] };
|
|
316
173
|
fs.writeFileSync(file, lines.join('\n'), 'utf-8');
|
|
@@ -321,7 +178,6 @@ module.exports = {
|
|
|
321
178
|
collectAssets,
|
|
322
179
|
renderAnthropicSkills,
|
|
323
180
|
renderAgentsMd,
|
|
324
|
-
copyCompanionFiles,
|
|
325
181
|
// Re-exports for adapter authors who need to roll their own format:
|
|
326
182
|
readFrontmatter,
|
|
327
183
|
bodyAfterFrontmatter,
|
|
@@ -13,7 +13,7 @@ const { walkAgents, walkWorkflows, walkSkills } = require('./walk.js');
|
|
|
13
13
|
function checkAgent(file) {
|
|
14
14
|
const content = fs.readFileSync(file, 'utf-8');
|
|
15
15
|
const errs = [];
|
|
16
|
-
if (!/^code:\s+wize
|
|
16
|
+
if (!/^code:\s+wize-/m.test(content)) errs.push('missing or invalid "code:" prefix');
|
|
17
17
|
if (!/^name:/m.test(content)) errs.push('missing "name:"');
|
|
18
18
|
if (!/^title:/m.test(content)) errs.push('missing "title:"');
|
|
19
19
|
if (!/^description:/m.test(content)) errs.push('missing "description:"');
|
|
@@ -24,10 +24,9 @@ function checkWorkflow(file) {
|
|
|
24
24
|
const content = fs.readFileSync(file, 'utf-8');
|
|
25
25
|
const errs = [];
|
|
26
26
|
if (!/^---\s*$/m.test(content)) errs.push('missing YAML frontmatter');
|
|
27
|
-
if (!/^code:\s+wize
|
|
27
|
+
if (!/^code:\s+wize-/m.test(content)) errs.push('missing or invalid "code:" prefix');
|
|
28
28
|
if (!/^name:/m.test(content)) errs.push('missing "name:"');
|
|
29
29
|
if (!/^owner:/m.test(content) && !/^module:/m.test(content)) errs.push('missing "owner:" or "module:"');
|
|
30
|
-
if (!/^description:/m.test(content)) errs.push('missing "description:"');
|
|
31
30
|
return errs;
|
|
32
31
|
}
|
|
33
32
|
|