@hongmaple0820/scale-engine 0.24.0 → 0.26.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/LICENSE +15 -15
- package/README.en.md +336 -304
- package/README.md +500 -475
- package/dist/adapters/AiderAdapter.js +52 -52
- package/dist/adapters/AntigravityAdapter.d.ts +4 -0
- package/dist/adapters/AntigravityAdapter.js +21 -0
- package/dist/adapters/AntigravityAdapter.js.map +1 -0
- package/dist/adapters/ClaudeCodeAdapter.d.ts +4 -1
- package/dist/adapters/ClaudeCodeAdapter.js +34 -34
- package/dist/adapters/ClaudeCodeAdapter.js.map +1 -1
- package/dist/adapters/ClineAdapter.d.ts +4 -0
- package/dist/adapters/ClineAdapter.js +20 -0
- package/dist/adapters/ClineAdapter.js.map +1 -0
- package/dist/adapters/CodexAdapter.js +28 -28
- package/dist/adapters/CursorAdapter.js +26 -26
- package/dist/adapters/DeepSeekTuiAdapter.js +97 -97
- package/dist/adapters/DoubaoAdapter.js +33 -33
- package/dist/adapters/GeminiAdapter.js +26 -26
- package/dist/adapters/GenericProjectAgentAdapter.d.ts +29 -0
- package/dist/adapters/GenericProjectAgentAdapter.js +204 -0
- package/dist/adapters/GenericProjectAgentAdapter.js.map +1 -0
- package/dist/adapters/HermesAdapter.js +26 -26
- package/dist/adapters/JCodeAdapter.d.ts +4 -0
- package/dist/adapters/JCodeAdapter.js +19 -0
- package/dist/adapters/JCodeAdapter.js.map +1 -0
- package/dist/adapters/KiloCodeAdapter.d.ts +4 -0
- package/dist/adapters/KiloCodeAdapter.js +20 -0
- package/dist/adapters/KiloCodeAdapter.js.map +1 -0
- package/dist/adapters/KimiAdapter.js +32 -32
- package/dist/adapters/KiroAdapter.js +26 -26
- package/dist/adapters/OpenClawAdapter.js +26 -26
- package/dist/adapters/OpenCodeAdapter.js +26 -26
- package/dist/adapters/QCoderAdapter.js +26 -26
- package/dist/adapters/QoderAdapter.d.ts +4 -0
- package/dist/adapters/QoderAdapter.js +21 -0
- package/dist/adapters/QoderAdapter.js.map +1 -0
- package/dist/adapters/TraeAdapter.js +26 -26
- package/dist/adapters/VSCAdapter.js +26 -26
- package/dist/adapters/WindsurfAdapter.js +32 -32
- package/dist/adapters/WorkBuddyAdapter.js +26 -26
- package/dist/adapters/index.d.ts +5 -0
- package/dist/adapters/index.js +15 -0
- package/dist/adapters/index.js.map +1 -1
- package/dist/api/cli.js +226 -48
- package/dist/api/cli.js.map +1 -1
- package/dist/api/doctor.js +10 -3
- package/dist/api/doctor.js.map +1 -1
- package/dist/api/quickstart.js +7 -1
- package/dist/api/quickstart.js.map +1 -1
- package/dist/artifact/sqliteStore.js +89 -89
- package/dist/artifact/types.d.ts +1 -1
- package/dist/cli/phaseCommands.js +45 -45
- package/dist/context/AntiPatternRegistry.js +20 -20
- package/dist/context/ContextBuilder.js +155 -155
- package/dist/evolution/EvolutionEngine.js +31 -31
- package/dist/evolution/EvolutionEvaluator.d.ts +2 -0
- package/dist/evolution/EvolutionEvaluator.js +7 -1
- package/dist/evolution/EvolutionEvaluator.js.map +1 -1
- package/dist/fsm/FSMAgentBridge.js +11 -11
- package/dist/hooks/HookGeneratorEnhanced.js +218 -218
- package/dist/index.d.ts +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/knowledge/SQLiteKnowledgeBase.js +28 -28
- package/dist/memory/MemoryBrain.d.ts +1 -0
- package/dist/memory/MemoryBrain.js +55 -52
- package/dist/memory/MemoryBrain.js.map +1 -1
- package/dist/memory/MemoryFabric.d.ts +13 -1
- package/dist/memory/MemoryFabric.js +35 -0
- package/dist/memory/MemoryFabric.js.map +1 -1
- package/dist/memory/MemoryProviders.d.ts +111 -0
- package/dist/memory/MemoryProviders.js +385 -0
- package/dist/memory/MemoryProviders.js.map +1 -0
- package/dist/memory/index.d.ts +1 -0
- package/dist/memory/index.js +1 -0
- package/dist/memory/index.js.map +1 -1
- package/dist/output/GovernanceDashboard.js +44 -44
- package/dist/output/HTMLArtifactLayer.js +31 -31
- package/dist/prompts/VibeTemplateGallery.js +121 -121
- package/dist/skills/SkillDiscovery.js +12 -1
- package/dist/skills/SkillDiscovery.js.map +1 -1
- package/dist/skills/SkillRadar.js +20 -0
- package/dist/skills/SkillRadar.js.map +1 -1
- package/dist/skills/SkillRepository.d.ts +9 -1
- package/dist/skills/SkillRepository.js +70 -0
- package/dist/skills/SkillRepository.js.map +1 -1
- package/dist/skills/routing/SkillPlanner.js +40 -40
- package/dist/workflow/EngineeringStandards.js +62 -62
- package/dist/workflow/GovernanceTemplatePacks.d.ts +1 -1
- package/dist/workflow/GovernanceTemplatePacks.js +1990 -162
- package/dist/workflow/GovernanceTemplatePacks.js.map +1 -1
- package/dist/workflow/GovernanceTemplates.d.ts +2 -0
- package/dist/workflow/GovernanceTemplates.js +1012 -1001
- package/dist/workflow/GovernanceTemplates.js.map +1 -1
- package/dist/workflow/ResourceGovernance.js +16 -16
- package/dist/workflow/TaskArtifactScaffolder.js +10 -10
- package/dist/workflow/UpgradeManager.d.ts +3 -2
- package/dist/workflow/UpgradeManager.js +134 -49
- package/dist/workflow/UpgradeManager.js.map +1 -1
- package/dist/workflow/WorkspaceTopology.js +18 -15
- package/dist/workflow/WorkspaceTopology.js.map +1 -1
- package/docs/CODE_INTELLIGENCE.md +138 -138
- package/docs/CONTEXT_BUDGET.md +81 -81
- package/docs/EXTERNAL_REFERENCES.md +63 -0
- package/docs/GITLAB_FLOW.md +125 -125
- package/docs/GOVERNANCE_DASHBOARD.md +64 -64
- package/docs/MEMORY_BRAIN.md +104 -104
- package/docs/MEMORY_FABRIC.md +134 -107
- package/docs/README.md +79 -68
- package/docs/RUNTIME_EVIDENCE.md +101 -101
- package/docs/SKILL-REPOSITORY.md +57 -0
- package/docs/SKILL_RADAR.md +122 -115
- package/docs/THIRD_PARTY_SKILLS.md +57 -0
- package/docs/WORKFLOW_EVAL.md +151 -151
- package/docs/guides/DEVELOPMENT_WORKFLOW.md +80 -0
- package/docs/guides/GETTING_STARTED.md +50 -0
- package/docs/start/README.md +78 -72
- package/docs/start/agent-governance-demo.md +107 -107
- package/docs/start/quickstart.md +137 -127
- package/docs/start/workflow-upgrade.md +32 -8
- package/docs/workflow/README.md +67 -0
- package/docs/workflow/node-library.md +52 -0
- package/docs/workflow/templates/api-contract.md +29 -0
- package/docs/workflow/templates/architecture-review.md +23 -0
- package/docs/workflow/templates/db-change-plan.md +20 -0
- package/docs/workflow/templates/docs-impact.md +17 -0
- package/docs/workflow/templates/e2e-plan.md +20 -0
- package/docs/workflow/templates/explore.md +16 -0
- package/docs/workflow/templates/github-actions-scale-preflight.yml +32 -0
- package/docs/workflow/templates/mini-prd.md +16 -0
- package/docs/workflow/templates/plan.md +37 -0
- package/docs/workflow/templates/pre-push-scale-preflight.sh +8 -0
- package/docs/workflow/templates/product-smoke.md +61 -0
- package/docs/workflow/templates/reality-check.md +28 -0
- package/docs/workflow/templates/resource-cleanup.md +17 -0
- package/docs/workflow/templates/resource-impact.md +25 -0
- package/docs/workflow/templates/review.md +12 -0
- package/docs/workflow/templates/runtime.md +23 -0
- package/docs/workflow/templates/security-review.md +26 -0
- package/docs/workflow/templates/skill-evidence.md +33 -0
- package/docs/workflow/templates/skill-plan.md +39 -0
- package/docs/workflow/templates/spec.md +17 -0
- package/docs/workflow/templates/standards-impact.md +28 -0
- package/docs/workflow/templates/summary.md +16 -0
- package/docs/workflow/templates/tasks.md +8 -0
- package/docs/workflow/templates/ui-spec.md +29 -0
- package/docs/workflow/templates/verification.md +20 -0
- package/docs/workflow/templates/visual-review.md +20 -0
- package/examples/demo-projects/agent-governance-demo/CONTEXT.md +14 -14
- package/examples/demo-projects/agent-governance-demo/README.md +48 -48
- package/examples/demo-projects/agent-governance-demo/docs/CONTEXT-MAP.md +14 -14
- package/examples/demo-projects/agent-governance-demo/package.json +22 -21
- package/examples/demo-projects/agent-governance-demo/src/oauth-state.ts +39 -39
- package/examples/demo-projects/agent-governance-demo/tests/oauth-state.test.ts +52 -52
- package/package.json +88 -75
|
@@ -76,32 +76,32 @@ export class OpenClawAdapter {
|
|
|
76
76
|
const stackLine = techStack.length > 0
|
|
77
77
|
? `\n## Tech Stack\n${techStack.map((t) => `- ${t}`).join('\n')}\n`
|
|
78
78
|
: '';
|
|
79
|
-
return `# ${projectName}
|
|
80
|
-
${stackLine}
|
|
81
|
-
## SCALE Engine Integration (OpenClaw)
|
|
82
|
-
|
|
83
|
-
This project uses SCALE Engine for AI engineering governance via OpenClaw.
|
|
84
|
-
|
|
85
|
-
### Commands
|
|
86
|
-
- \`scale create <type> <title>\` — Create artifact
|
|
87
|
-
- \`scale transition <id> <action>\` — Transition artifact state
|
|
88
|
-
- \`scale list --type Spec\` — List artifacts
|
|
89
|
-
- \`scale role activate <role>\` — Switch role
|
|
90
|
-
- \`scale doctor\` — Health check
|
|
91
|
-
|
|
92
|
-
### Workflow
|
|
93
|
-
1. **Explore** → Role: explorer (Read/Grep only)
|
|
94
|
-
2. **Plan** → Create Spec → refine → approve (guard: ambiguity ≤ 0.2)
|
|
95
|
-
3. **Implement** → Role: implementer (Edit/Write/Bash unlocked)
|
|
96
|
-
4. **Verify** → Must run tests before claiming done
|
|
97
|
-
5. **Learn** → Defects → Lessons → Rules → Hooks
|
|
98
|
-
|
|
99
|
-
### Rules
|
|
100
|
-
- 🔴 Dangerous commands are physically blocked
|
|
101
|
-
- 🔴 Hardcoded secrets are blocked on Edit/Write
|
|
102
|
-
- 🟡 3 identical retries triggers brute-retry detection
|
|
103
|
-
- 🟡 Claiming done without running tests is blocked
|
|
104
|
-
- 🟢 All tool calls are tracked in .scale/events/
|
|
79
|
+
return `# ${projectName}
|
|
80
|
+
${stackLine}
|
|
81
|
+
## SCALE Engine Integration (OpenClaw)
|
|
82
|
+
|
|
83
|
+
This project uses SCALE Engine for AI engineering governance via OpenClaw.
|
|
84
|
+
|
|
85
|
+
### Commands
|
|
86
|
+
- \`scale create <type> <title>\` — Create artifact
|
|
87
|
+
- \`scale transition <id> <action>\` — Transition artifact state
|
|
88
|
+
- \`scale list --type Spec\` — List artifacts
|
|
89
|
+
- \`scale role activate <role>\` — Switch role
|
|
90
|
+
- \`scale doctor\` — Health check
|
|
91
|
+
|
|
92
|
+
### Workflow
|
|
93
|
+
1. **Explore** → Role: explorer (Read/Grep only)
|
|
94
|
+
2. **Plan** → Create Spec → refine → approve (guard: ambiguity ≤ 0.2)
|
|
95
|
+
3. **Implement** → Role: implementer (Edit/Write/Bash unlocked)
|
|
96
|
+
4. **Verify** → Must run tests before claiming done
|
|
97
|
+
5. **Learn** → Defects → Lessons → Rules → Hooks
|
|
98
|
+
|
|
99
|
+
### Rules
|
|
100
|
+
- 🔴 Dangerous commands are physically blocked
|
|
101
|
+
- 🔴 Hardcoded secrets are blocked on Edit/Write
|
|
102
|
+
- 🟡 3 identical retries triggers brute-retry detection
|
|
103
|
+
- 🟡 Claiming done without running tests is blocked
|
|
104
|
+
- 🟢 All tool calls are tracked in .scale/events/
|
|
105
105
|
`;
|
|
106
106
|
}
|
|
107
107
|
async init(config) {
|
|
@@ -76,32 +76,32 @@ export class OpenCodeAdapter {
|
|
|
76
76
|
const stackLine = techStack.length > 0
|
|
77
77
|
? `\n## Tech Stack\n${techStack.map((t) => `- ${t}`).join('\n')}\n`
|
|
78
78
|
: '';
|
|
79
|
-
return `# ${projectName}
|
|
80
|
-
${stackLine}
|
|
81
|
-
## SCALE Engine Integration (OpenCode)
|
|
82
|
-
|
|
83
|
-
This project uses SCALE Engine for AI engineering governance via OpenCode.
|
|
84
|
-
|
|
85
|
-
### Commands
|
|
86
|
-
- \`scale create <type> <title>\` — Create artifact
|
|
87
|
-
- \`scale transition <id> <action>\` — Transition artifact state
|
|
88
|
-
- \`scale list --type Spec\` — List artifacts
|
|
89
|
-
- \`scale role activate <role>\` — Switch role
|
|
90
|
-
- \`scale doctor\` — Health check
|
|
91
|
-
|
|
92
|
-
### Workflow
|
|
93
|
-
1. **Explore** → Role: explorer (Read/Grep only)
|
|
94
|
-
2. **Plan** → Create Spec → refine → approve (guard: ambiguity ≤ 0.2)
|
|
95
|
-
3. **Implement** → Role: implementer (Edit/Write/Bash unlocked)
|
|
96
|
-
4. **Verify** → Must run tests before claiming done
|
|
97
|
-
5. **Learn** → Defects → Lessons → Rules → Hooks
|
|
98
|
-
|
|
99
|
-
### Rules
|
|
100
|
-
- 🔴 Dangerous commands are physically blocked
|
|
101
|
-
- 🔴 Hardcoded secrets are blocked on Edit/Write
|
|
102
|
-
- 🟡 3 identical retries triggers brute-retry detection
|
|
103
|
-
- 🟡 Claiming done without running tests is blocked
|
|
104
|
-
- 🟢 All tool calls are tracked in .scale/events/
|
|
79
|
+
return `# ${projectName}
|
|
80
|
+
${stackLine}
|
|
81
|
+
## SCALE Engine Integration (OpenCode)
|
|
82
|
+
|
|
83
|
+
This project uses SCALE Engine for AI engineering governance via OpenCode.
|
|
84
|
+
|
|
85
|
+
### Commands
|
|
86
|
+
- \`scale create <type> <title>\` — Create artifact
|
|
87
|
+
- \`scale transition <id> <action>\` — Transition artifact state
|
|
88
|
+
- \`scale list --type Spec\` — List artifacts
|
|
89
|
+
- \`scale role activate <role>\` — Switch role
|
|
90
|
+
- \`scale doctor\` — Health check
|
|
91
|
+
|
|
92
|
+
### Workflow
|
|
93
|
+
1. **Explore** → Role: explorer (Read/Grep only)
|
|
94
|
+
2. **Plan** → Create Spec → refine → approve (guard: ambiguity ≤ 0.2)
|
|
95
|
+
3. **Implement** → Role: implementer (Edit/Write/Bash unlocked)
|
|
96
|
+
4. **Verify** → Must run tests before claiming done
|
|
97
|
+
5. **Learn** → Defects → Lessons → Rules → Hooks
|
|
98
|
+
|
|
99
|
+
### Rules
|
|
100
|
+
- 🔴 Dangerous commands are physically blocked
|
|
101
|
+
- 🔴 Hardcoded secrets are blocked on Edit/Write
|
|
102
|
+
- 🟡 3 identical retries triggers brute-retry detection
|
|
103
|
+
- 🟡 Claiming done without running tests is blocked
|
|
104
|
+
- 🟢 All tool calls are tracked in .scale/events/
|
|
105
105
|
`;
|
|
106
106
|
}
|
|
107
107
|
async init(config) {
|
|
@@ -76,32 +76,32 @@ export class QCoderAdapter {
|
|
|
76
76
|
const stackLine = techStack.length > 0
|
|
77
77
|
? `\n## Tech Stack\n${techStack.map((t) => `- ${t}`).join('\n')}\n`
|
|
78
78
|
: '';
|
|
79
|
-
return `# ${projectName}
|
|
80
|
-
${stackLine}
|
|
81
|
-
## SCALE Engine Integration (QCoder / Qwen Code)
|
|
82
|
-
|
|
83
|
-
This project uses SCALE Engine for AI engineering governance via Qwen Code CLI.
|
|
84
|
-
|
|
85
|
-
### Commands
|
|
86
|
-
- \`scale create <type> <title>\` — Create artifact
|
|
87
|
-
- \`scale transition <id> <action>\` — Transition artifact state
|
|
88
|
-
- \`scale list --type Spec\` — List artifacts
|
|
89
|
-
- \`scale role activate <role>\` — Switch role
|
|
90
|
-
- \`scale doctor\` — Health check
|
|
91
|
-
|
|
92
|
-
### Workflow
|
|
93
|
-
1. **Explore** → Role: explorer (Read/Grep only)
|
|
94
|
-
2. **Plan** → Create Spec → refine → approve (guard: ambiguity ≤ 0.2)
|
|
95
|
-
3. **Implement** → Role: implementer (Edit/Write/Bash unlocked)
|
|
96
|
-
4. **Verify** → Must run tests before claiming done
|
|
97
|
-
5. **Learn** → Defects → Lessons → Rules → Hooks
|
|
98
|
-
|
|
99
|
-
### Rules
|
|
100
|
-
- 🔴 Dangerous commands are physically blocked
|
|
101
|
-
- 🔴 Hardcoded secrets are blocked on Edit/Write
|
|
102
|
-
- 🟡 3 identical retries triggers brute-retry detection
|
|
103
|
-
- 🟡 Claiming done without running tests is blocked
|
|
104
|
-
- 🟢 All tool calls are tracked in .scale/events/
|
|
79
|
+
return `# ${projectName}
|
|
80
|
+
${stackLine}
|
|
81
|
+
## SCALE Engine Integration (QCoder / Qwen Code)
|
|
82
|
+
|
|
83
|
+
This project uses SCALE Engine for AI engineering governance via Qwen Code CLI.
|
|
84
|
+
|
|
85
|
+
### Commands
|
|
86
|
+
- \`scale create <type> <title>\` — Create artifact
|
|
87
|
+
- \`scale transition <id> <action>\` — Transition artifact state
|
|
88
|
+
- \`scale list --type Spec\` — List artifacts
|
|
89
|
+
- \`scale role activate <role>\` — Switch role
|
|
90
|
+
- \`scale doctor\` — Health check
|
|
91
|
+
|
|
92
|
+
### Workflow
|
|
93
|
+
1. **Explore** → Role: explorer (Read/Grep only)
|
|
94
|
+
2. **Plan** → Create Spec → refine → approve (guard: ambiguity ≤ 0.2)
|
|
95
|
+
3. **Implement** → Role: implementer (Edit/Write/Bash unlocked)
|
|
96
|
+
4. **Verify** → Must run tests before claiming done
|
|
97
|
+
5. **Learn** → Defects → Lessons → Rules → Hooks
|
|
98
|
+
|
|
99
|
+
### Rules
|
|
100
|
+
- 🔴 Dangerous commands are physically blocked
|
|
101
|
+
- 🔴 Hardcoded secrets are blocked on Edit/Write
|
|
102
|
+
- 🟡 3 identical retries triggers brute-retry detection
|
|
103
|
+
- 🟡 Claiming done without running tests is blocked
|
|
104
|
+
- 🟢 All tool calls are tracked in .scale/events/
|
|
105
105
|
`;
|
|
106
106
|
}
|
|
107
107
|
async init(config) {
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
// SCALE Engine - Qoder Adapter
|
|
2
|
+
import { GenericProjectAgentAdapter } from './GenericProjectAgentAdapter.js';
|
|
3
|
+
export class QoderAdapter extends GenericProjectAgentAdapter {
|
|
4
|
+
constructor() {
|
|
5
|
+
super({
|
|
6
|
+
agentType: 'qoder',
|
|
7
|
+
displayName: 'Qoder',
|
|
8
|
+
settingsPath: '.qoder/settings.json',
|
|
9
|
+
knowledgeDocPath: '.qoder/rules/SCALE.md',
|
|
10
|
+
skillsDir: '.qoder/skills',
|
|
11
|
+
extraDirs: ['.qoder/rules'],
|
|
12
|
+
installedPaths: ['.qoder/settings.json', '.qoder/rules'],
|
|
13
|
+
settingsShape: 'qoder-hooks',
|
|
14
|
+
notes: [
|
|
15
|
+
'Qoder rules are kept under .qoder/rules for project-scoped guidance.',
|
|
16
|
+
'Qoder hook entries use PreToolUse, PostToolUse, and Stop style sections.',
|
|
17
|
+
],
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=QoderAdapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"QoderAdapter.js","sourceRoot":"","sources":["../../src/adapters/QoderAdapter.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAE/B,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAA;AAE5E,MAAM,OAAO,YAAa,SAAQ,0BAA0B;IAC1D;QACE,KAAK,CAAC;YACJ,SAAS,EAAE,OAAO;YAClB,WAAW,EAAE,OAAO;YACpB,YAAY,EAAE,sBAAsB;YACpC,gBAAgB,EAAE,uBAAuB;YACzC,SAAS,EAAE,eAAe;YAC1B,SAAS,EAAE,CAAC,cAAc,CAAC;YAC3B,cAAc,EAAE,CAAC,sBAAsB,EAAE,cAAc,CAAC;YACxD,aAAa,EAAE,aAAa;YAC5B,KAAK,EAAE;gBACL,sEAAsE;gBACtE,0EAA0E;aAC3E;SACF,CAAC,CAAA;IACJ,CAAC;CACF"}
|
|
@@ -76,32 +76,32 @@ export class TraeAdapter {
|
|
|
76
76
|
const stackLine = techStack.length > 0
|
|
77
77
|
? `\n## Tech Stack\n${techStack.map((t) => `- ${t}`).join('\n')}\n`
|
|
78
78
|
: '';
|
|
79
|
-
return `# ${projectName}
|
|
80
|
-
${stackLine}
|
|
81
|
-
## SCALE Engine Integration (Trae)
|
|
82
|
-
|
|
83
|
-
This project uses SCALE Engine for AI engineering governance via Trae.
|
|
84
|
-
|
|
85
|
-
### Commands
|
|
86
|
-
- \`scale create <type> <title>\` — Create artifact
|
|
87
|
-
- \`scale transition <id> <action>\` — Transition artifact state
|
|
88
|
-
- \`scale list --type Spec\` — List artifacts
|
|
89
|
-
- \`scale role activate <role>\` — Switch role
|
|
90
|
-
- \`scale doctor\` — Health check
|
|
91
|
-
|
|
92
|
-
### Workflow
|
|
93
|
-
1. **Explore** → Role: explorer (Read/Grep only)
|
|
94
|
-
2. **Plan** → Create Spec → refine → approve (guard: ambiguity ≤ 0.2)
|
|
95
|
-
3. **Implement** → Role: implementer (Edit/Write/Bash unlocked)
|
|
96
|
-
4. **Verify** → Must run tests before claiming done
|
|
97
|
-
5. **Learn** → Defects → Lessons → Rules → Hooks
|
|
98
|
-
|
|
99
|
-
### Rules
|
|
100
|
-
- 🔴 Dangerous commands are physically blocked
|
|
101
|
-
- 🔴 Hardcoded secrets are blocked on Edit/Write
|
|
102
|
-
- 🟡 3 identical retries triggers brute-retry detection
|
|
103
|
-
- 🟡 Claiming done without running tests is blocked
|
|
104
|
-
- 🟢 All tool calls are tracked in .scale/events/
|
|
79
|
+
return `# ${projectName}
|
|
80
|
+
${stackLine}
|
|
81
|
+
## SCALE Engine Integration (Trae)
|
|
82
|
+
|
|
83
|
+
This project uses SCALE Engine for AI engineering governance via Trae.
|
|
84
|
+
|
|
85
|
+
### Commands
|
|
86
|
+
- \`scale create <type> <title>\` — Create artifact
|
|
87
|
+
- \`scale transition <id> <action>\` — Transition artifact state
|
|
88
|
+
- \`scale list --type Spec\` — List artifacts
|
|
89
|
+
- \`scale role activate <role>\` — Switch role
|
|
90
|
+
- \`scale doctor\` — Health check
|
|
91
|
+
|
|
92
|
+
### Workflow
|
|
93
|
+
1. **Explore** → Role: explorer (Read/Grep only)
|
|
94
|
+
2. **Plan** → Create Spec → refine → approve (guard: ambiguity ≤ 0.2)
|
|
95
|
+
3. **Implement** → Role: implementer (Edit/Write/Bash unlocked)
|
|
96
|
+
4. **Verify** → Must run tests before claiming done
|
|
97
|
+
5. **Learn** → Defects → Lessons → Rules → Hooks
|
|
98
|
+
|
|
99
|
+
### Rules
|
|
100
|
+
- 🔴 Dangerous commands are physically blocked
|
|
101
|
+
- 🔴 Hardcoded secrets are blocked on Edit/Write
|
|
102
|
+
- 🟡 3 identical retries triggers brute-retry detection
|
|
103
|
+
- 🟡 Claiming done without running tests is blocked
|
|
104
|
+
- 🟢 All tool calls are tracked in .scale/events/
|
|
105
105
|
`;
|
|
106
106
|
}
|
|
107
107
|
async init(config) {
|
|
@@ -76,32 +76,32 @@ export class VSCAdapter {
|
|
|
76
76
|
const stackLine = techStack.length > 0
|
|
77
77
|
? `\n## Tech Stack\n${techStack.map((t) => `- ${t}`).join('\n')}\n`
|
|
78
78
|
: '';
|
|
79
|
-
return `# ${projectName}
|
|
80
|
-
${stackLine}
|
|
81
|
-
## SCALE Engine Integration (VSC)
|
|
82
|
-
|
|
83
|
-
This project uses SCALE Engine for AI engineering governance via VS Code Copilot CLI.
|
|
84
|
-
|
|
85
|
-
### Commands
|
|
86
|
-
- \`scale create <type> <title>\` — Create artifact
|
|
87
|
-
- \`scale transition <id> <action>\` — Transition artifact state
|
|
88
|
-
- \`scale list --type Spec\` — List artifacts
|
|
89
|
-
- \`scale role activate <role>\` — Switch role
|
|
90
|
-
- \`scale doctor\` — Health check
|
|
91
|
-
|
|
92
|
-
### Workflow
|
|
93
|
-
1. **Explore** → Role: explorer (Read/Grep only)
|
|
94
|
-
2. **Plan** → Create Spec → refine → approve (guard: ambiguity ≤ 0.2)
|
|
95
|
-
3. **Implement** → Role: implementer (Edit/Write/Bash unlocked)
|
|
96
|
-
4. **Verify** → Must run tests before claiming done
|
|
97
|
-
5. **Learn** → Defects → Lessons → Rules → Hooks
|
|
98
|
-
|
|
99
|
-
### Rules
|
|
100
|
-
- 🔴 Dangerous commands are physically blocked
|
|
101
|
-
- 🔴 Hardcoded secrets are blocked on Edit/Write
|
|
102
|
-
- 🟡 3 identical retries triggers brute-retry detection
|
|
103
|
-
- 🟡 Claiming done without running tests is blocked
|
|
104
|
-
- 🟢 All tool calls are tracked in .scale/events/
|
|
79
|
+
return `# ${projectName}
|
|
80
|
+
${stackLine}
|
|
81
|
+
## SCALE Engine Integration (VSC)
|
|
82
|
+
|
|
83
|
+
This project uses SCALE Engine for AI engineering governance via VS Code Copilot CLI.
|
|
84
|
+
|
|
85
|
+
### Commands
|
|
86
|
+
- \`scale create <type> <title>\` — Create artifact
|
|
87
|
+
- \`scale transition <id> <action>\` — Transition artifact state
|
|
88
|
+
- \`scale list --type Spec\` — List artifacts
|
|
89
|
+
- \`scale role activate <role>\` — Switch role
|
|
90
|
+
- \`scale doctor\` — Health check
|
|
91
|
+
|
|
92
|
+
### Workflow
|
|
93
|
+
1. **Explore** → Role: explorer (Read/Grep only)
|
|
94
|
+
2. **Plan** → Create Spec → refine → approve (guard: ambiguity ≤ 0.2)
|
|
95
|
+
3. **Implement** → Role: implementer (Edit/Write/Bash unlocked)
|
|
96
|
+
4. **Verify** → Must run tests before claiming done
|
|
97
|
+
5. **Learn** → Defects → Lessons → Rules → Hooks
|
|
98
|
+
|
|
99
|
+
### Rules
|
|
100
|
+
- 🔴 Dangerous commands are physically blocked
|
|
101
|
+
- 🔴 Hardcoded secrets are blocked on Edit/Write
|
|
102
|
+
- 🟡 3 identical retries triggers brute-retry detection
|
|
103
|
+
- 🟡 Claiming done without running tests is blocked
|
|
104
|
+
- 🟢 All tool calls are tracked in .scale/events/
|
|
105
105
|
`;
|
|
106
106
|
}
|
|
107
107
|
async init(config) {
|
|
@@ -77,38 +77,38 @@ export class WindsurfAdapter {
|
|
|
77
77
|
const stackLine = techStack.length > 0
|
|
78
78
|
? `\n## Tech Stack\n${techStack.map((t) => `- ${t}`).join('\n')}\n`
|
|
79
79
|
: '';
|
|
80
|
-
return `# ${projectName}
|
|
81
|
-
${stackLine}
|
|
82
|
-
## SCALE Engine Integration (Windsurf)
|
|
83
|
-
|
|
84
|
-
This project uses SCALE Engine for AI engineering governance via Windsurf.
|
|
85
|
-
|
|
86
|
-
### Commands
|
|
87
|
-
- \`scale create <type> <title>\` — Create artifact
|
|
88
|
-
- \`scale transition <id> <action>\` — Transition artifact state
|
|
89
|
-
- \`scale list --type Spec\` — List artifacts
|
|
90
|
-
- \`scale role activate <role>\` — Switch role
|
|
91
|
-
- \`scale doctor\` — Health check
|
|
92
|
-
|
|
93
|
-
### Workflow
|
|
94
|
-
1. **Explore** → Role: explorer (Read/Grep only)
|
|
95
|
-
2. **Plan** → Create Spec → refine → approve (guard: ambiguity ≤ 0.2)
|
|
96
|
-
3. **Implement** → Role: implementer (Edit/Write/Bash unlocked)
|
|
97
|
-
4. **Verify** → Must run tests before claiming done
|
|
98
|
-
5. **Learn** → Defects → Lessons → Rules → Hooks
|
|
99
|
-
|
|
100
|
-
### Rules
|
|
101
|
-
- 🔴 Dangerous commands are physically blocked
|
|
102
|
-
- 🔴 Hardcoded secrets are blocked on Edit/Write
|
|
103
|
-
- 🟡 3 identical retries triggers brute-retry detection
|
|
104
|
-
- 🟡 Claiming done without running tests is blocked
|
|
105
|
-
- 🟢 All tool calls are tracked in .scale/events/
|
|
106
|
-
|
|
107
|
-
### Windsurf-Specific Notes
|
|
108
|
-
- Windsurf uses Cascade Flow for multi-file editing
|
|
109
|
-
- Use Chat mode for quick questions, Cascade for complex tasks
|
|
110
|
-
- This rules.md file provides AI assistant context
|
|
111
|
-
- SCALE hooks are defined in \`.windsurf/settings.json\`
|
|
80
|
+
return `# ${projectName}
|
|
81
|
+
${stackLine}
|
|
82
|
+
## SCALE Engine Integration (Windsurf)
|
|
83
|
+
|
|
84
|
+
This project uses SCALE Engine for AI engineering governance via Windsurf.
|
|
85
|
+
|
|
86
|
+
### Commands
|
|
87
|
+
- \`scale create <type> <title>\` — Create artifact
|
|
88
|
+
- \`scale transition <id> <action>\` — Transition artifact state
|
|
89
|
+
- \`scale list --type Spec\` — List artifacts
|
|
90
|
+
- \`scale role activate <role>\` — Switch role
|
|
91
|
+
- \`scale doctor\` — Health check
|
|
92
|
+
|
|
93
|
+
### Workflow
|
|
94
|
+
1. **Explore** → Role: explorer (Read/Grep only)
|
|
95
|
+
2. **Plan** → Create Spec → refine → approve (guard: ambiguity ≤ 0.2)
|
|
96
|
+
3. **Implement** → Role: implementer (Edit/Write/Bash unlocked)
|
|
97
|
+
4. **Verify** → Must run tests before claiming done
|
|
98
|
+
5. **Learn** → Defects → Lessons → Rules → Hooks
|
|
99
|
+
|
|
100
|
+
### Rules
|
|
101
|
+
- 🔴 Dangerous commands are physically blocked
|
|
102
|
+
- 🔴 Hardcoded secrets are blocked on Edit/Write
|
|
103
|
+
- 🟡 3 identical retries triggers brute-retry detection
|
|
104
|
+
- 🟡 Claiming done without running tests is blocked
|
|
105
|
+
- 🟢 All tool calls are tracked in .scale/events/
|
|
106
|
+
|
|
107
|
+
### Windsurf-Specific Notes
|
|
108
|
+
- Windsurf uses Cascade Flow for multi-file editing
|
|
109
|
+
- Use Chat mode for quick questions, Cascade for complex tasks
|
|
110
|
+
- This rules.md file provides AI assistant context
|
|
111
|
+
- SCALE hooks are defined in \`.windsurf/settings.json\`
|
|
112
112
|
`;
|
|
113
113
|
}
|
|
114
114
|
async init(config) {
|
|
@@ -76,32 +76,32 @@ export class WorkBuddyAdapter {
|
|
|
76
76
|
const stackLine = techStack.length > 0
|
|
77
77
|
? `\n## Tech Stack\n${techStack.map((t) => `- ${t}`).join('\n')}\n`
|
|
78
78
|
: '';
|
|
79
|
-
return `# ${projectName}
|
|
80
|
-
${stackLine}
|
|
81
|
-
## SCALE Engine Integration (WorkBuddy)
|
|
82
|
-
|
|
83
|
-
This project uses SCALE Engine for AI engineering governance via WorkBuddy.
|
|
84
|
-
|
|
85
|
-
### Commands
|
|
86
|
-
- \`scale create <type> <title>\` — Create artifact
|
|
87
|
-
- \`scale transition <id> <action>\` — Transition artifact state
|
|
88
|
-
- \`scale list --type Spec\` — List artifacts
|
|
89
|
-
- \`scale role activate <role>\` — Switch role
|
|
90
|
-
- \`scale doctor\` — Health check
|
|
91
|
-
|
|
92
|
-
### Workflow
|
|
93
|
-
1. **Explore** → Role: explorer (Read/Grep only)
|
|
94
|
-
2. **Plan** → Create Spec → refine → approve (guard: ambiguity ≤ 0.2)
|
|
95
|
-
3. **Implement** → Role: implementer (Edit/Write/Bash unlocked)
|
|
96
|
-
4. **Verify** → Must run tests before claiming done
|
|
97
|
-
5. **Learn** → Defects → Lessons → Rules → Hooks
|
|
98
|
-
|
|
99
|
-
### Rules
|
|
100
|
-
- 🔴 Dangerous commands are physically blocked
|
|
101
|
-
- 🔴 Hardcoded secrets are blocked on Edit/Write
|
|
102
|
-
- 🟡 3 identical retries triggers brute-retry detection
|
|
103
|
-
- 🟡 Claiming done without running tests is blocked
|
|
104
|
-
- 🟢 All tool calls are tracked in .scale/events/
|
|
79
|
+
return `# ${projectName}
|
|
80
|
+
${stackLine}
|
|
81
|
+
## SCALE Engine Integration (WorkBuddy)
|
|
82
|
+
|
|
83
|
+
This project uses SCALE Engine for AI engineering governance via WorkBuddy.
|
|
84
|
+
|
|
85
|
+
### Commands
|
|
86
|
+
- \`scale create <type> <title>\` — Create artifact
|
|
87
|
+
- \`scale transition <id> <action>\` — Transition artifact state
|
|
88
|
+
- \`scale list --type Spec\` — List artifacts
|
|
89
|
+
- \`scale role activate <role>\` — Switch role
|
|
90
|
+
- \`scale doctor\` — Health check
|
|
91
|
+
|
|
92
|
+
### Workflow
|
|
93
|
+
1. **Explore** → Role: explorer (Read/Grep only)
|
|
94
|
+
2. **Plan** → Create Spec → refine → approve (guard: ambiguity ≤ 0.2)
|
|
95
|
+
3. **Implement** → Role: implementer (Edit/Write/Bash unlocked)
|
|
96
|
+
4. **Verify** → Must run tests before claiming done
|
|
97
|
+
5. **Learn** → Defects → Lessons → Rules → Hooks
|
|
98
|
+
|
|
99
|
+
### Rules
|
|
100
|
+
- 🔴 Dangerous commands are physically blocked
|
|
101
|
+
- 🔴 Hardcoded secrets are blocked on Edit/Write
|
|
102
|
+
- 🟡 3 identical retries triggers brute-retry detection
|
|
103
|
+
- 🟡 Claiming done without running tests is blocked
|
|
104
|
+
- 🟢 All tool calls are tracked in .scale/events/
|
|
105
105
|
`;
|
|
106
106
|
}
|
|
107
107
|
async init(config) {
|
package/dist/adapters/index.d.ts
CHANGED
|
@@ -18,6 +18,11 @@ export { WindsurfAdapter } from './WindsurfAdapter.js';
|
|
|
18
18
|
export { KimiAdapter } from './KimiAdapter.js';
|
|
19
19
|
export { DoubaoAdapter } from './DoubaoAdapter.js';
|
|
20
20
|
export { KiroAdapter } from './KiroAdapter.js';
|
|
21
|
+
export { QoderAdapter } from './QoderAdapter.js';
|
|
22
|
+
export { JCodeAdapter } from './JCodeAdapter.js';
|
|
23
|
+
export { ClineAdapter } from './ClineAdapter.js';
|
|
24
|
+
export { KiloCodeAdapter } from './KiloCodeAdapter.js';
|
|
25
|
+
export { AntigravityAdapter } from './AntigravityAdapter.js';
|
|
21
26
|
/** All supported agent type identifiers */
|
|
22
27
|
export declare const SUPPORTED_AGENTS: AgentPlatform[];
|
|
23
28
|
/**
|
package/dist/adapters/index.js
CHANGED
|
@@ -17,6 +17,11 @@ import { WindsurfAdapter } from './WindsurfAdapter.js';
|
|
|
17
17
|
import { KimiAdapter } from './KimiAdapter.js';
|
|
18
18
|
import { DoubaoAdapter } from './DoubaoAdapter.js';
|
|
19
19
|
import { KiroAdapter } from './KiroAdapter.js';
|
|
20
|
+
import { QoderAdapter } from './QoderAdapter.js';
|
|
21
|
+
import { JCodeAdapter } from './JCodeAdapter.js';
|
|
22
|
+
import { ClineAdapter } from './ClineAdapter.js';
|
|
23
|
+
import { KiloCodeAdapter } from './KiloCodeAdapter.js';
|
|
24
|
+
import { AntigravityAdapter } from './AntigravityAdapter.js';
|
|
20
25
|
export { ClaudeCodeAdapter } from './ClaudeCodeAdapter.js';
|
|
21
26
|
export { CodexAdapter } from './CodexAdapter.js';
|
|
22
27
|
export { OpenCodeAdapter } from './OpenCodeAdapter.js';
|
|
@@ -34,6 +39,11 @@ export { WindsurfAdapter } from './WindsurfAdapter.js';
|
|
|
34
39
|
export { KimiAdapter } from './KimiAdapter.js';
|
|
35
40
|
export { DoubaoAdapter } from './DoubaoAdapter.js';
|
|
36
41
|
export { KiroAdapter } from './KiroAdapter.js';
|
|
42
|
+
export { QoderAdapter } from './QoderAdapter.js';
|
|
43
|
+
export { JCodeAdapter } from './JCodeAdapter.js';
|
|
44
|
+
export { ClineAdapter } from './ClineAdapter.js';
|
|
45
|
+
export { KiloCodeAdapter } from './KiloCodeAdapter.js';
|
|
46
|
+
export { AntigravityAdapter } from './AntigravityAdapter.js';
|
|
37
47
|
// ============================================================================
|
|
38
48
|
// Adapter Registry
|
|
39
49
|
// ============================================================================
|
|
@@ -55,6 +65,11 @@ const ADAPTER_MAP = {
|
|
|
55
65
|
'kimi': KimiAdapter,
|
|
56
66
|
'doubao': DoubaoAdapter,
|
|
57
67
|
'kiro': KiroAdapter,
|
|
68
|
+
'qoder': QoderAdapter,
|
|
69
|
+
'jcode': JCodeAdapter,
|
|
70
|
+
'cline': ClineAdapter,
|
|
71
|
+
'kilocode': KiloCodeAdapter,
|
|
72
|
+
'antigravity': AntigravityAdapter,
|
|
58
73
|
};
|
|
59
74
|
/** All supported agent type identifiers */
|
|
60
75
|
export const SUPPORTED_AGENTS = Object.keys(ADAPTER_MAP);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/adapters/index.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,4CAA4C;AAG5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/adapters/index.ts"],"names":[],"mappings":"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"}
|