principles-disciple 1.71.0 → 1.73.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/openclaw.plugin.json +10 -5
- package/package.json +17 -19
- package/scripts/acceptance-test.mjs +16 -73
- package/scripts/sync-plugin.mjs +382 -77
- package/src/commands/archive-impl.ts +2 -1
- package/src/commands/capabilities.ts +2 -2
- package/src/commands/context.ts +2 -2
- package/src/commands/disable-impl.ts +2 -1
- package/src/commands/evolution-status.ts +16 -16
- package/src/commands/export.ts +12 -67
- package/src/commands/pain.ts +91 -1
- package/src/commands/principle-rollback.ts +2 -1
- package/src/commands/promote-impl.ts +7 -43
- package/src/commands/rollback-impl.ts +2 -1
- package/src/commands/rollback.ts +2 -1
- package/src/commands/samples.ts +2 -1
- package/src/commands/thinking-os.ts +2 -1
- package/src/config/errors.ts +18 -2
- package/src/constants/diagnostician.ts +2 -2
- package/src/constants/tools.ts +2 -1
- package/src/core/__tests__/focus-history.test.ts +210 -0
- package/src/core/config.ts +1 -1
- package/src/core/confirm-first-gate.ts +255 -0
- package/src/core/correction-cue-learner.ts +2 -136
- package/src/core/correction-types.ts +16 -88
- package/src/core/dictionary.ts +19 -20
- package/src/core/empathy-keyword-matcher.ts +17 -289
- package/src/core/empathy-types.ts +18 -229
- package/src/core/event-log.ts +38 -132
- package/src/core/evolution-reducer.ts +21 -2
- package/src/core/evolution-types.ts +76 -464
- package/src/core/file-store.ts +80 -0
- package/src/core/focus-history.ts +228 -955
- package/src/core/local-worker-routing.ts +34 -314
- package/src/core/merge-gate-audit.ts +0 -195
- package/src/core/pain-diagnostic-gate.ts +154 -0
- package/src/core/pain-signal.ts +21 -138
- package/src/core/pain.ts +15 -88
- package/src/core/pd-task-reconciler.ts +26 -115
- package/src/core/pd-task-service.ts +9 -9
- package/src/core/pd-task-types.ts +23 -127
- package/src/core/principle-compiler/__tests__/compiler-replay-gate.test.ts +174 -0
- package/src/core/principle-compiler/code-validator.ts +15 -42
- package/src/core/principle-compiler/compiler.ts +100 -15
- package/src/core/principle-compiler/index.ts +5 -2
- package/src/core/principle-compiler/template-generator.ts +4 -104
- package/src/core/principle-injection.ts +10 -202
- package/src/core/principle-internalization/filesystem-lifecycle-datasource.ts +42 -0
- package/src/core/principle-internalization/lifecycle-read-model.ts +39 -242
- package/src/core/principle-internalization/principle-lifecycle-service.ts +12 -10
- package/src/core/principle-tree-ledger-adapter.ts +145 -0
- package/src/core/principle-tree-ledger.ts +8 -6
- package/src/core/reflection/reflection-context.ts +14 -109
- package/src/core/replay-engine.ts +8 -500
- package/src/core/rule-host-helpers.ts +5 -35
- package/src/core/rule-host-types.ts +10 -82
- package/src/core/rule-host.ts +6 -63
- package/src/core/runtime-v2-prompt-activation-reader.ts +231 -0
- package/src/core/session-tracker.ts +87 -101
- package/src/core/shadow-observation-registry.ts +19 -48
- package/src/core/trajectory.ts +3 -1
- package/src/core/workflow-funnel-loader.ts +62 -68
- package/src/core/workspace-context.ts +46 -0
- package/src/core/workspace-dir-service.ts +1 -1
- package/src/core/workspace-dir-validation.ts +18 -9
- package/src/hooks/AGENTS.md +1 -1
- package/src/hooks/gate-block-helper.ts +46 -44
- package/src/hooks/gate.ts +207 -7
- package/src/hooks/lifecycle.ts +30 -32
- package/src/hooks/llm.ts +60 -32
- package/src/hooks/pain.ts +297 -103
- package/src/hooks/prompt.ts +469 -339
- package/src/hooks/subagent.ts +2 -29
- package/src/i18n/commands.ts +2 -10
- package/src/index.ts +95 -85
- package/src/openclaw-sdk.ts +311 -0
- package/src/service/central-database.ts +8 -4
- package/src/service/evolution-queue-migration.ts +2 -1
- package/src/service/evolution-worker.ts +163 -1786
- package/src/service/internalization-trigger-adapter.ts +302 -0
- package/src/service/keyword-optimization-service.ts +4 -4
- package/src/service/monitoring-query-service.ts +1 -215
- package/src/service/queue-io.ts +60 -331
- package/src/service/runtime-summary-service.ts +115 -18
- package/src/service/subagent-workflow/index.ts +0 -41
- package/src/service/subagent-workflow/types.ts +9 -120
- package/src/service/subagent-workflow/workflow-store.ts +2 -119
- package/src/service/workflow-watchdog.ts +0 -43
- package/src/types/event-payload.ts +16 -74
- package/src/types/event-types.ts +39 -547
- package/src/types/hygiene-types.ts +7 -30
- package/src/types/principle-tree-schema.ts +20 -222
- package/src/types/queue.ts +15 -70
- package/src/types/runtime-summary.ts +5 -49
- package/src/utils/io.ts +10 -0
- package/src/utils/retry.ts +1 -1
- package/src/utils/shadow-fingerprint.ts +2 -2
- package/src/utils/workspace-resolver.ts +50 -0
- package/templates/langs/en/core/AGENTS.md +2 -2
- package/templates/langs/en/core/BOOT.md +1 -1
- package/templates/langs/en/core/HEARTBEAT.md +2 -2
- package/templates/langs/en/skills/ai-sprint-orchestration/references/agent-registry.json +1 -72
- package/templates/langs/en/skills/ai-sprint-orchestration/references/specs/bugfix-complex-template.json +6 -6
- package/templates/langs/en/skills/ai-sprint-orchestration/references/specs/feature-complex-template.json +6 -6
- package/templates/langs/en/skills/ai-sprint-orchestration/references/specs/workflow-validation-minimal-verify.json +2 -12
- package/templates/langs/en/skills/ai-sprint-orchestration/references/specs/workflow-validation-minimal.json +2 -12
- package/templates/langs/en/skills/ai-sprint-orchestration/runtime/.gitignore +2 -2
- package/templates/langs/en/skills/ai-sprint-orchestration/scripts/run.mjs +51 -15
- package/templates/langs/en/skills/evolve-task/SKILL.md +1 -1
- package/templates/langs/en/skills/pd-cli-operator/SKILL.md +67 -0
- package/templates/langs/en/skills/pd-diagnostician/SKILL.md +1 -1
- package/templates/langs/en/skills/pd-mentor/SKILL.md +1 -1
- package/templates/langs/en/skills/pd-pain-signal/SKILL.md +17 -39
- package/templates/langs/en/skills/pd-runtime-v2/SKILL.md +61 -0
- package/templates/langs/zh/core/AGENTS.md +2 -2
- package/templates/langs/zh/core/BOOT.md +1 -1
- package/templates/langs/zh/core/HEARTBEAT.md +2 -2
- package/templates/langs/zh/skills/ai-sprint-orchestration/references/agent-registry.json +1 -72
- package/templates/langs/zh/skills/ai-sprint-orchestration/references/specs/bugfix-complex-template.json +6 -6
- package/templates/langs/zh/skills/ai-sprint-orchestration/references/specs/feature-complex-template.json +6 -6
- package/templates/langs/zh/skills/ai-sprint-orchestration/references/specs/nocturnal-trinity-quality-enhancement.json +8 -8
- package/templates/langs/zh/skills/ai-sprint-orchestration/references/specs/workflow-validation-minimal-verify.json +2 -12
- package/templates/langs/zh/skills/ai-sprint-orchestration/references/specs/workflow-validation-minimal.json +2 -12
- package/templates/langs/zh/skills/ai-sprint-orchestration/runtime/.gitignore +2 -2
- package/templates/langs/zh/skills/ai-sprint-orchestration/scripts/run.mjs +51 -15
- package/templates/langs/zh/skills/ai-sprint-orchestration/test/run.test.mjs +21 -5
- package/templates/langs/zh/skills/evolve-task/SKILL.md +2 -2
- package/templates/langs/zh/skills/pd-cli-operator/SKILL.md +67 -0
- package/templates/langs/zh/skills/pd-diagnostician/SKILL.md +1 -1
- package/templates/langs/zh/skills/pd-mentor/SKILL.md +1 -1
- package/templates/langs/zh/skills/pd-pain-signal/SKILL.md +17 -38
- package/templates/langs/zh/skills/pd-runtime-v2/SKILL.md +61 -0
- package/tests/build-artifacts.test.ts +1 -3
- package/tests/commands/evolution-status.test.ts +0 -118
- package/tests/core/bootstrap-rules.test.ts +1 -1
- package/tests/core/config.test.ts +1 -1
- package/tests/core/event-log.test.ts +35 -0
- package/tests/core/evolution-engine.test.ts +610 -0
- package/tests/core/file-store.test.ts +102 -0
- package/tests/core/focus-history.test.ts +203 -11
- package/tests/core/merge-gate-audit.test.ts +2 -169
- package/tests/core/model-deployment-registry.test.ts +7 -1
- package/tests/core/model-training-registry.test.ts +19 -0
- package/tests/core/observability.test.ts +0 -1
- package/tests/core/pain-diagnostic-gate.test.ts +498 -0
- package/tests/core/pain.test.ts +0 -1
- package/tests/core/principle-internalization/deprecated-readiness.test.ts +2 -2
- package/tests/core/principle-internalization/lifecycle-metrics.test.ts +2 -2
- package/tests/core/principle-internalization/{internalization-routing-policy.test.ts → lifecycle-routing-policy.test.ts} +6 -6
- package/tests/core/principle-internalization/lineage-source-retired.test.ts +56 -0
- package/tests/core/principle-internalization/principle-lifecycle-service.test.ts +1 -23
- package/tests/core/principle-tree-ledger-adapter.test.ts +253 -0
- package/tests/core/reflection-context.test.ts +0 -14
- package/tests/core/replay-engine.test.ts +127 -215
- package/tests/core/rule-host-helpers.test.ts +2 -2
- package/tests/core/rule-implementation-runtime.test.ts +0 -27
- package/tests/core/workflow-funnel-loader.test.ts +162 -0
- package/tests/core/workspace-dir-validation.test.ts +8 -1
- package/tests/core-anti-growth.test.ts +192 -0
- package/tests/hook-workspace-nextaction-contract.test.ts +42 -0
- package/tests/hooks/confirm-first-gate.test.ts +333 -0
- package/tests/hooks/gate-auto-correct-shadow.test.ts +310 -0
- package/tests/hooks/gate-auto-correct.test.ts +665 -0
- package/tests/hooks/gate-rule-host-pipeline.test.ts +2 -1
- package/tests/hooks/pain.test.ts +269 -12
- package/tests/hooks/prompt-characterization.test.ts +500 -0
- package/tests/hooks/prompt-size-guard.test.ts +329 -0
- package/tests/hooks/runtime-v2-prompt-activation.test.ts +869 -0
- package/tests/index.test.ts +94 -1
- package/tests/integration/auto-entry-gate.test.ts +248 -0
- package/tests/integration/internalization-trigger-guard.test.ts +69 -0
- package/tests/integration/m8-legacy-paths.test.ts +63 -0
- package/tests/integration/runtime-v2-pain-guard.test.ts +125 -0
- package/tests/plugin-config-resolution-cutover.test.ts +359 -0
- package/tests/runtime-v2-discovery-guard.test.ts +154 -0
- package/tests/service/central-database.test.ts +457 -0
- package/tests/service/evolution-worker.correction-observer.test.ts +173 -0
- package/tests/service/evolution-worker.timeout.test.ts +11 -129
- package/tests/service/internalization-trigger-adapter.test.ts +251 -0
- package/tests/service/monitoring-query-service.test.ts +1 -47
- package/tests/service/queue-io.test.ts +1 -62
- package/tests/service/runtime-summary-service.test.ts +184 -3
- package/tests/service/workflow-watchdog.test.ts +0 -91
- package/tests/utils/file-lock.test.ts +5 -3
- package/tests/utils/session-key.test.ts +52 -0
- package/tests/utils/subagent-probe.test.ts +48 -1
- package/vitest.config.ts +4 -11
- package/.planning/codebase/ARCHITECTURE.md +0 -157
- package/.planning/codebase/CONCERNS.md +0 -145
- package/.planning/codebase/CONVENTIONS.md +0 -148
- package/.planning/codebase/INTEGRATIONS.md +0 -81
- package/.planning/codebase/STACK.md +0 -87
- package/.planning/codebase/STRUCTURE.md +0 -193
- package/.planning/codebase/TESTING.md +0 -243
- package/.planning/phases/01-basic-visualization/01-GAP-CLOSURE-VERIFICATION.md +0 -113
- package/docs/COMMAND_REFERENCE.md +0 -76
- package/docs/COMMAND_REFERENCE_EN.md +0 -79
- package/scripts/build-web.mjs +0 -46
- package/scripts/diagnose-nocturnal.mjs +0 -537
- package/scripts/seed-nocturnal-scenarios.mjs +0 -384
- package/src/commands/nocturnal-review.ts +0 -322
- package/src/commands/nocturnal-rollout.ts +0 -790
- package/src/commands/nocturnal-train.ts +0 -986
- package/src/commands/pd-reflect.ts +0 -88
- package/src/core/adaptive-thresholds.ts +0 -478
- package/src/core/diagnostician-task-store.ts +0 -192
- package/src/core/nocturnal-arbiter.ts +0 -715
- package/src/core/nocturnal-artifact-lineage.ts +0 -116
- package/src/core/nocturnal-artificer.ts +0 -257
- package/src/core/nocturnal-candidate-scoring.ts +0 -530
- package/src/core/nocturnal-compliance.ts +0 -1146
- package/src/core/nocturnal-dataset.ts +0 -763
- package/src/core/nocturnal-executability.ts +0 -428
- package/src/core/nocturnal-export.ts +0 -499
- package/src/core/nocturnal-paths.ts +0 -240
- package/src/core/nocturnal-reasoning-deriver.ts +0 -343
- package/src/core/nocturnal-rule-implementation-validator.ts +0 -246
- package/src/core/nocturnal-snapshot-contract.ts +0 -99
- package/src/core/nocturnal-trajectory-extractor.ts +0 -512
- package/src/core/nocturnal-trinity-types.ts +0 -218
- package/src/core/nocturnal-trinity.ts +0 -2680
- package/src/core/principle-internalization/deprecated-readiness.ts +0 -93
- package/src/core/principle-internalization/internalization-routing-policy.ts +0 -208
- package/src/core/principle-internalization/lifecycle-metrics.ts +0 -152
- package/src/http/principles-console-route.ts +0 -709
- package/src/service/central-health-service.ts +0 -49
- package/src/service/central-overview-service.ts +0 -138
- package/src/service/control-ui-query-service.ts +0 -900
- package/src/service/cooldown-strategy.ts +0 -97
- package/src/service/evolution-pain-context.ts +0 -79
- package/src/service/evolution-query-service.ts +0 -407
- package/src/service/health-query-service.ts +0 -1038
- package/src/service/nocturnal-config.ts +0 -214
- package/src/service/nocturnal-runtime.ts +0 -734
- package/src/service/nocturnal-service.ts +0 -1605
- package/src/service/nocturnal-target-selector.ts +0 -545
- package/src/service/sleep-cycle.ts +0 -157
- package/src/service/startup-reconciler.ts +0 -112
- package/src/service/subagent-workflow/correction-observer-types.ts +0 -82
- package/src/service/subagent-workflow/correction-observer-workflow-manager.ts +0 -250
- package/src/service/subagent-workflow/deep-reflect-workflow-manager.ts +0 -1
- package/src/service/subagent-workflow/dynamic-timeout.ts +0 -30
- package/src/service/subagent-workflow/empathy-observer-workflow-manager.ts +0 -268
- package/src/service/subagent-workflow/nocturnal-workflow-manager.ts +0 -795
- package/src/service/subagent-workflow/runtime-direct-driver.ts +0 -268
- package/src/service/subagent-workflow/workflow-manager-base.ts +0 -580
- package/src/tools/write-pain-flag.ts +0 -215
- package/tests/commands/nocturnal-review.test.ts +0 -448
- package/tests/commands/nocturnal-train.test.ts +0 -97
- package/tests/commands/pd-reflect.test.ts +0 -49
- package/tests/core/adaptive-thresholds.test.ts +0 -261
- package/tests/core/nocturnal-arbiter.test.ts +0 -559
- package/tests/core/nocturnal-artifact-lineage.test.ts +0 -53
- package/tests/core/nocturnal-artificer.test.ts +0 -241
- package/tests/core/nocturnal-candidate-scoring.test.ts +0 -532
- package/tests/core/nocturnal-compliance-p-principles.test.ts +0 -133
- package/tests/core/nocturnal-compliance.test.ts +0 -646
- package/tests/core/nocturnal-dataset.test.ts +0 -892
- package/tests/core/nocturnal-e2e.test.ts +0 -234
- package/tests/core/nocturnal-executability.test.ts +0 -357
- package/tests/core/nocturnal-export.test.ts +0 -517
- package/tests/core/nocturnal-reasoning-deriver.test.ts +0 -372
- package/tests/core/nocturnal-reviewed-subset-comparison.test.ts +0 -428
- package/tests/core/nocturnal-rule-implementation-validator.test.ts +0 -127
- package/tests/core/nocturnal-snapshot-contract.test.ts +0 -121
- package/tests/core/nocturnal-trajectory-extractor.test.ts +0 -634
- package/tests/core/nocturnal-trinity.test.ts +0 -2053
- package/tests/core/pain-auto-repair.test.ts +0 -96
- package/tests/core/pain-integration.test.ts +0 -510
- package/tests/fixtures/nocturnal-reviewed-subset.json +0 -183
- package/tests/http/principles-console-route.test.ts +0 -162
- package/tests/integration/chaos-resilience.test.ts +0 -348
- package/tests/integration/empathy-workflow-integration.test.ts +0 -626
- package/tests/integration/pain-diagnostician-loop.e2e.test.ts +0 -380
- package/tests/service/control-ui-query-service.test.ts +0 -121
- package/tests/service/cooldown-strategy.test.ts +0 -164
- package/tests/service/data-endpoints-regression.test.ts +0 -834
- package/tests/service/empathy-observer-workflow-manager.test.ts +0 -175
- package/tests/service/evolution-worker.nocturnal.test.ts +0 -601
- package/tests/service/nocturnal-runtime-hardening.test.ts +0 -118
- package/tests/service/nocturnal-runtime.test.ts +0 -473
- package/tests/service/nocturnal-service-code-candidate.test.ts +0 -330
- package/tests/service/nocturnal-target-selector.test.ts +0 -615
- package/tests/service/startup-reconciler.test.ts +0 -148
- package/tests/tools/write-pain-flag.test.ts +0 -358
- package/ui/src/App.tsx +0 -45
- package/ui/src/api.ts +0 -220
- package/ui/src/charts.tsx +0 -955
- package/ui/src/components/ErrorState.tsx +0 -6
- package/ui/src/components/Loading.tsx +0 -13
- package/ui/src/components/ProtectedRoute.tsx +0 -12
- package/ui/src/components/Shell.tsx +0 -91
- package/ui/src/components/WorkspaceConfig.tsx +0 -178
- package/ui/src/components/index.ts +0 -5
- package/ui/src/context/auth.tsx +0 -80
- package/ui/src/context/theme.tsx +0 -66
- package/ui/src/hooks/useAutoRefresh.ts +0 -39
- package/ui/src/i18n/ui.ts +0 -473
- package/ui/src/main.tsx +0 -16
- package/ui/src/pages/EvolutionPage.tsx +0 -333
- package/ui/src/pages/FeedbackPage.tsx +0 -138
- package/ui/src/pages/GateMonitorPage.tsx +0 -136
- package/ui/src/pages/LoginPage.tsx +0 -89
- package/ui/src/pages/OverviewPage.tsx +0 -599
- package/ui/src/pages/SamplesPage.tsx +0 -174
- package/ui/src/pages/ThinkingModelsPage.tsx +0 -702
- package/ui/src/styles.css +0 -2020
- package/ui/src/types.ts +0 -384
- package/ui/src/utils/format.ts +0 -15
|
@@ -10,19 +10,14 @@
|
|
|
10
10
|
"stageTimeoutMinutes": 5,
|
|
11
11
|
"stages": ["verify"],
|
|
12
12
|
"producer": {
|
|
13
|
-
"agent": "
|
|
14
|
-
"model": "
|
|
13
|
+
"agent": "opencode",
|
|
14
|
+
"model": "minimax-cn-coding-plan/MiniMax-M2.7",
|
|
15
15
|
"timeoutSeconds": 90
|
|
16
16
|
},
|
|
17
17
|
"reviewerA": {
|
|
18
18
|
"agent": "opencode",
|
|
19
19
|
"model": "minimax-cn-coding-plan/MiniMax-M2.7",
|
|
20
20
|
"timeoutSeconds": 45,
|
|
21
|
-
"fallback": {
|
|
22
|
-
"agent": "iflow",
|
|
23
|
-
"model": "glm-4.7",
|
|
24
|
-
"timeoutSeconds": 75
|
|
25
|
-
},
|
|
26
21
|
"role": "artifact_checker",
|
|
27
22
|
"focus": "Verify decision.md and scorecard.json contain expected fields"
|
|
28
23
|
},
|
|
@@ -30,11 +25,6 @@
|
|
|
30
25
|
"agent": "opencode",
|
|
31
26
|
"model": "minimax-cn-coding-plan/MiniMax-M2.7",
|
|
32
27
|
"timeoutSeconds": 45,
|
|
33
|
-
"fallback": {
|
|
34
|
-
"agent": "iflow",
|
|
35
|
-
"model": "glm-4.7",
|
|
36
|
-
"timeoutSeconds": 75
|
|
37
|
-
},
|
|
38
28
|
"role": "recommendation_checker",
|
|
39
29
|
"focus": "Verify nextRunRecommendation is computed and reasonable"
|
|
40
30
|
},
|
|
@@ -10,19 +10,14 @@
|
|
|
10
10
|
"stageTimeoutMinutes": 4,
|
|
11
11
|
"stages": ["validate"],
|
|
12
12
|
"producer": {
|
|
13
|
-
"agent": "
|
|
14
|
-
"model": "
|
|
13
|
+
"agent": "opencode",
|
|
14
|
+
"model": "minimax-cn-coding-plan/MiniMax-M2.7",
|
|
15
15
|
"timeoutSeconds": 90
|
|
16
16
|
},
|
|
17
17
|
"reviewerA": {
|
|
18
18
|
"agent": "opencode",
|
|
19
19
|
"model": "minimax-cn-coding-plan/MiniMax-M2.7",
|
|
20
20
|
"timeoutSeconds": 45,
|
|
21
|
-
"fallback": {
|
|
22
|
-
"agent": "iflow",
|
|
23
|
-
"model": "glm-4.7",
|
|
24
|
-
"timeoutSeconds": 75
|
|
25
|
-
},
|
|
26
21
|
"role": "schema_checker",
|
|
27
22
|
"focus": "Verify report has all required sections, VERDICT format, DIMENSIONS format"
|
|
28
23
|
},
|
|
@@ -30,11 +25,6 @@
|
|
|
30
25
|
"agent": "opencode",
|
|
31
26
|
"model": "minimax-cn-coding-plan/MiniMax-M2.7",
|
|
32
27
|
"timeoutSeconds": 45,
|
|
33
|
-
"fallback": {
|
|
34
|
-
"agent": "iflow",
|
|
35
|
-
"model": "glm-4.7",
|
|
36
|
-
"timeoutSeconds": 75
|
|
37
|
-
},
|
|
38
28
|
"role": "quality_checker",
|
|
39
29
|
"focus": "Verify outputQuality is computed correctly, qualityReasons are meaningful"
|
|
40
30
|
},
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
*
|
|
2
|
-
!.gitignore
|
|
1
|
+
*
|
|
2
|
+
!.gitignore
|
|
@@ -29,6 +29,11 @@ const acpxBin = (() => {
|
|
|
29
29
|
const r = spawnSync(cmd, ['acpx'], { encoding: 'utf8' });
|
|
30
30
|
if (r.status === 0) {
|
|
31
31
|
const lines = r.stdout.trim().split(/\r?\n/);
|
|
32
|
+
// On Windows, prefer .cmd file over the Unix shell script (no extension)
|
|
33
|
+
if (process.platform === 'win32') {
|
|
34
|
+
const cmdFile = lines.find(l => l.trim().toLowerCase().endsWith('.cmd'));
|
|
35
|
+
if (cmdFile) return cmdFile.trim();
|
|
36
|
+
}
|
|
32
37
|
const symlink = lines[0].trim();
|
|
33
38
|
try {
|
|
34
39
|
return fs.realpathSync(symlink);
|
|
@@ -86,7 +91,7 @@ function configureRuntimeRoots(rootPath) {
|
|
|
86
91
|
|
|
87
92
|
function checkAcpxAvailable() {
|
|
88
93
|
return process.platform === 'win32'
|
|
89
|
-
? spawnSync('
|
|
94
|
+
? spawnSync(process.env.COMSPEC || 'cmd.exe', ['/d', '/s', '/c', `"${acpxBin}" --version`], {
|
|
90
95
|
encoding: 'utf8',
|
|
91
96
|
shell: false,
|
|
92
97
|
timeout: 10_000,
|
|
@@ -129,6 +134,24 @@ function runSelfCheck() {
|
|
|
129
134
|
const acpxCheck = checkAcpxAvailable();
|
|
130
135
|
record('acpx_available', acpxCheck.status === 0, (acpxCheck.stdout || acpxCheck.stderr || '').trim() || `status=${acpxCheck.status}`);
|
|
131
136
|
|
|
137
|
+
// Check which agents are available by running a quick version check
|
|
138
|
+
try {
|
|
139
|
+
const registry = readJson(path.join(referencesRoot, 'agent-registry.json'));
|
|
140
|
+
const agentNames = Object.keys(registry.agents || {});
|
|
141
|
+
for (const agentName of agentNames) {
|
|
142
|
+
try {
|
|
143
|
+
const agentCheck = process.platform === 'win32'
|
|
144
|
+
? spawnSync(process.env.COMSPEC || 'cmd.exe', ['/d', '/s', '/c', `"${acpxBin}" --format quiet --timeout 30 ${agentName} exec "echo available"`], { encoding: 'utf8', shell: false, timeout: 45_000 })
|
|
145
|
+
: spawnSync(nodeBin, [acpxBin, '--format', 'quiet', '--timeout', '30', agentName, 'exec', 'echo available'], { encoding: 'utf8', shell: false, timeout: 45_000 });
|
|
146
|
+
record(`agent:${agentName}`, agentCheck.status === 0, agentCheck.status === 0 ? 'available' : `status=${agentCheck.status}`);
|
|
147
|
+
} catch (agentErr) {
|
|
148
|
+
record(`agent:${agentName}`, false, agentErr.message);
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
} catch (registryErr) {
|
|
152
|
+
record('agent_registry_read', false, registryErr.message);
|
|
153
|
+
}
|
|
154
|
+
|
|
132
155
|
const probePath = path.join(runtimeRoot, '.self-check-write-probe.tmp');
|
|
133
156
|
try {
|
|
134
157
|
fs.writeFileSync(probePath, 'ok', 'utf8');
|
|
@@ -273,7 +296,7 @@ function updateSummary(runDir, lines) {
|
|
|
273
296
|
function inferFailureClassification({ summary = '', blockers = [], reviewerTimeouts = null, reviewerViolations = null }) {
|
|
274
297
|
const combined = [summary, ...(blockers ?? [])].join(' ').toLowerCase();
|
|
275
298
|
|
|
276
|
-
if (/acpx|path|enoent|eacces|eprem|permission|writable|runtime root|command not found|not available/.test(combined)) {
|
|
299
|
+
if (/acpx|path|enoent|eacces|eprem|permission|writable|runtime root|command not found|not available|failed to spawn|spawn.*enoent|exit status|status 1|status 130|taskkill|comspec/.test(combined)) {
|
|
277
300
|
return {
|
|
278
301
|
failureClassification: 'environment issue',
|
|
279
302
|
failureSource: 'runtime environment',
|
|
@@ -289,7 +312,7 @@ function inferFailureClassification({ summary = '', blockers = [], reviewerTimeo
|
|
|
289
312
|
};
|
|
290
313
|
}
|
|
291
314
|
|
|
292
|
-
if ((reviewerTimeouts?.length ?? 0) > 0 || (reviewerViolations?.length ?? 0) > 0 || /missing reports|schema violation|report invalidated|timed out|
|
|
315
|
+
if ((reviewerTimeouts?.length ?? 0) > 0 || (reviewerViolations?.length ?? 0) > 0 || /missing reports|schema violation|report invalidated|timed out|verdict|dimensions/.test(combined)) {
|
|
293
316
|
return {
|
|
294
317
|
failureClassification: 'agent behavior issue',
|
|
295
318
|
failureSource: 'role execution or report quality',
|
|
@@ -297,6 +320,14 @@ function inferFailureClassification({ summary = '', blockers = [], reviewerTimeo
|
|
|
297
320
|
};
|
|
298
321
|
}
|
|
299
322
|
|
|
323
|
+
if (/agent .*failed/.test(combined)) {
|
|
324
|
+
return {
|
|
325
|
+
failureClassification: 'environment issue',
|
|
326
|
+
failureSource: 'agent runtime',
|
|
327
|
+
recommendedNextAction: 'Check agent availability and environment setup before retrying.',
|
|
328
|
+
};
|
|
329
|
+
}
|
|
330
|
+
|
|
300
331
|
return {
|
|
301
332
|
failureClassification: 'workflow bug',
|
|
302
333
|
failureSource: 'orchestrator runtime',
|
|
@@ -439,12 +470,12 @@ function runAgent({ cwd, agent, model, prompt, timeoutSeconds = 1800, failLogPat
|
|
|
439
470
|
let result;
|
|
440
471
|
try {
|
|
441
472
|
if (process.platform === 'win32') {
|
|
473
|
+
const comspec = process.env.COMSPEC || 'cmd.exe';
|
|
442
474
|
result = spawnSync(
|
|
443
|
-
|
|
475
|
+
comspec,
|
|
444
476
|
[
|
|
445
|
-
'
|
|
446
|
-
|
|
447
|
-
`acpx --cwd $env:AI_SPRINT_CWD --approve-all --model $env:AI_SPRINT_MODEL --timeout $env:AI_SPRINT_TIMEOUT ${agent} exec -f $env:AI_SPRINT_PROMPT`,
|
|
477
|
+
'/d', '/s', '/c',
|
|
478
|
+
`"${acpxBin}" --cwd "%AI_SPRINT_CWD%" --approve-all --model "%AI_SPRINT_MODEL%" --timeout "%AI_SPRINT_TIMEOUT%" ${agent} exec -f "%AI_SPRINT_PROMPT%"`,
|
|
448
479
|
],
|
|
449
480
|
{
|
|
450
481
|
cwd,
|
|
@@ -574,9 +605,10 @@ function runAgentAsync({ cwd, agent, model, prompt, timeoutSeconds = 1800, promp
|
|
|
574
605
|
|
|
575
606
|
try {
|
|
576
607
|
if (process.platform === 'win32') {
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
608
|
+
const comspec = process.env.COMSPEC || 'cmd.exe';
|
|
609
|
+
proc = spawn(comspec, [
|
|
610
|
+
'/d', '/s', '/c',
|
|
611
|
+
`"${acpxBin}" --cwd "%AI_SPRINT_CWD%" --approve-all --model "%AI_SPRINT_MODEL%" --timeout "%AI_SPRINT_TIMEOUT%" ${agent} exec -f "%AI_SPRINT_PROMPT%"`,
|
|
580
612
|
], {
|
|
581
613
|
cwd,
|
|
582
614
|
encoding: 'utf8',
|
|
@@ -833,9 +865,10 @@ function runAgentWithProgressCheck({
|
|
|
833
865
|
// Spawn the agent process
|
|
834
866
|
try {
|
|
835
867
|
if (process.platform === 'win32') {
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
|
|
868
|
+
const comspec = process.env.COMSPEC || 'cmd.exe';
|
|
869
|
+
proc = spawn(comspec, [
|
|
870
|
+
'/d', '/s', '/c',
|
|
871
|
+
`"${acpxBin}" --cwd "%AI_SPRINT_CWD%" --approve-all --model "%AI_SPRINT_MODEL%" --timeout "%AI_SPRINT_TIMEOUT%" ${agent} exec -f "%AI_SPRINT_PROMPT%"`,
|
|
839
872
|
], {
|
|
840
873
|
cwd,
|
|
841
874
|
encoding: 'utf8',
|
|
@@ -1176,8 +1209,8 @@ export function getIsolationDir(runId, stageName, role) {
|
|
|
1176
1209
|
}
|
|
1177
1210
|
|
|
1178
1211
|
/**
|
|
1179
|
-
* Find report in
|
|
1180
|
-
*
|
|
1212
|
+
* Find report in agent isolation directory.
|
|
1213
|
+
* Agent writes to runtime/tmp/sprint-agent/{runId}/{stage}-{role}/{report}.md
|
|
1181
1214
|
*
|
|
1182
1215
|
* IMPORTANT: Uses runId directly for isolation lookup, not fragile timestamp extraction.
|
|
1183
1216
|
* This ensures different runs have unique isolation directories and prevents cross-contamination.
|
|
@@ -2608,6 +2641,9 @@ async function executeStage(runDir, state, spec) {
|
|
|
2608
2641
|
worktreePath: worktreeInfo?.worktreePath,
|
|
2609
2642
|
worklogPath: producerWorklogPath,
|
|
2610
2643
|
});
|
|
2644
|
+
if (result.status !== 0) {
|
|
2645
|
+
throw new Error(`Agent exited with status ${result.status}: ${result.stderr || 'no stderr'}`);
|
|
2646
|
+
}
|
|
2611
2647
|
producerOutput = result.stdout;
|
|
2612
2648
|
extensionsUsed = result.extensionsUsed ?? 0;
|
|
2613
2649
|
if (extensionsUsed > 0) {
|
|
@@ -10,7 +10,7 @@ You must execute the following steps in order (no skipping). ARGUMENTS: $ARGUMEN
|
|
|
10
10
|
- Read the last entry in memory/CHECKPOINT.md
|
|
11
11
|
- Read the last 3 entries in memory/ISSUE_LOG.md
|
|
12
12
|
- Read recent decisions in memory/DECISIONS.md
|
|
13
|
-
-
|
|
13
|
+
- Runtime V2 pain diagnosis uses task input/context, not `.state/.pain_flag`
|
|
14
14
|
|
|
15
15
|
## Step 1: Read Runtime Parameters & Self-Check
|
|
16
16
|
- Read .principles/PROFILE.json, understand risk_paths, gate, tests.commands.
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: pd-cli-operator
|
|
3
|
+
description: Use this skill when operating the Principles Disciple `pd` CLI: probing runtime health, manually recording pain, inspecting tasks/runs/candidates/artifacts, intaking candidates, viewing flow policy, or cleaning legacy state. It routes CLI commands safely and forbids direct `.state/.pain_flag` writes.
|
|
4
|
+
disable-model-invocation: false
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# PD CLI Operator
|
|
8
|
+
|
|
9
|
+
Use the `pd` CLI as the supported operator surface. Do not modify PD state files by hand unless a command explicitly says to do so.
|
|
10
|
+
|
|
11
|
+
## Runtime V2 Pain Diagnosis
|
|
12
|
+
|
|
13
|
+
Manual pain diagnosis:
|
|
14
|
+
```bash
|
|
15
|
+
pd pain record --reason "<reason>" --score <0-100> --workspace "<workspace>" --json
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
Success requires:
|
|
19
|
+
- `status` is `succeeded`
|
|
20
|
+
- `candidateIds` is non-empty
|
|
21
|
+
- `ledgerEntryIds` is non-empty
|
|
22
|
+
|
|
23
|
+
Forbidden:
|
|
24
|
+
- Do not write `.state/.pain_flag`.
|
|
25
|
+
- Do not use `write_file`, shell redirection, `Set-Content`, `Out-File`, or `node -e` to create pain flags.
|
|
26
|
+
|
|
27
|
+
## Health And Policy
|
|
28
|
+
|
|
29
|
+
Runtime probe:
|
|
30
|
+
```bash
|
|
31
|
+
pd runtime probe --runtime pi-ai --workspace "<workspace>" --json
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
Flow policy:
|
|
35
|
+
```bash
|
|
36
|
+
pd runtime flow show --workspace "<workspace>" --json
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## Inspect Runtime V2 Objects
|
|
40
|
+
|
|
41
|
+
Tasks and runs:
|
|
42
|
+
```bash
|
|
43
|
+
pd task show --task-id "<taskId>" --json
|
|
44
|
+
pd run show --run-id "<runId>" --json
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
Candidates and artifacts:
|
|
48
|
+
```bash
|
|
49
|
+
pd candidate list --workspace "<workspace>" --json
|
|
50
|
+
pd candidate show --candidate-id "<candidateId>" --workspace "<workspace>" --json
|
|
51
|
+
pd artifact show --artifact-id "<artifactId>" --workspace "<workspace>" --json
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
Manual intake:
|
|
55
|
+
```bash
|
|
56
|
+
pd candidate intake --candidate-id "<candidateId>" --workspace "<workspace>" --json
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
## Legacy Admin
|
|
60
|
+
|
|
61
|
+
Only when explicitly cleaning old state:
|
|
62
|
+
```bash
|
|
63
|
+
pd legacy cleanup --workspace "<workspace>" --dry-run
|
|
64
|
+
pd legacy cleanup --workspace "<workspace>" --apply
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
Never use legacy cleanup as a diagnosis trigger.
|
|
@@ -89,7 +89,7 @@ You are a professional root cause analysis expert. You MUST strictly follow the
|
|
|
89
89
|
**Goal**: Collect sufficient factual evidence, avoid analysis based on assumptions.
|
|
90
90
|
|
|
91
91
|
**Execution Steps**:
|
|
92
|
-
1.
|
|
92
|
+
1. Use the Runtime V2 task input/context as the Pain signal source. Do not read `.state/.pain_flag` as the primary diagnosis input.
|
|
93
93
|
2. Read last 100 lines of `.state/logs/events.jsonl`
|
|
94
94
|
3. Use `read_file` or `search_file_content` to search codebase for relevant keywords
|
|
95
95
|
4. Record all evidence sources (file path:line number)
|
|
@@ -211,7 +211,7 @@ A: GFI (Global Friction Index) measures the system's "pain level", range 0-100.
|
|
|
211
211
|
A: EP is earned through successful task completion and problem resolution. Failures may deduct EP but have protection mechanisms. Reaching EP thresholds automatically upgrades your tier, unlocking more permissions (larger code modification limits).
|
|
212
212
|
|
|
213
213
|
**Q: What is Pain Signal?**
|
|
214
|
-
A: Pain Signal is a problem signal detected by the system
|
|
214
|
+
A: Pain Signal is a problem signal detected by the system. Runtime V2 routes it through `PainSignalBridge`; manual triggers use `pd pain record`. `.state/.pain_flag` is legacy compatibility only.
|
|
215
215
|
|
|
216
216
|
**Q: How to view installed tool capabilities?**
|
|
217
217
|
A: Check `.state/SYSTEM_CAPABILITIES.json` or run `/pd-bootstrap` to rescan.
|
|
@@ -1,52 +1,30 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: pd-pain-signal
|
|
3
|
-
description: Manually
|
|
3
|
+
description: Manually trigger a Principles Disciple Runtime V2 pain diagnosis. Use this when the user reports the agent is stuck, looping, unresponsive, or asks to record/trigger a pain signal. Mandatory path: use `pd pain record`; never write `.state/.pain_flag` and never use legacy write_pain_flag tooling.
|
|
4
4
|
disable-model-invocation: false
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
# Pain Signal (
|
|
7
|
+
# Pain Signal (Runtime V2)
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
Manual pain diagnosis must enter Runtime V2 through the CLI:
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
**Mandatory Enforcement**:
|
|
16
|
-
|
|
17
|
-
When you need to create, write, or manually create a pain flag, you **MUST** use this skill via the `write_pain_flag` tool. Any bypassing of this skill to directly operate on files violates the mandatory constraint of this skill.
|
|
11
|
+
```bash
|
|
12
|
+
pd pain record --reason "<reason>" --score <0-100> --workspace "<workspace>" --json
|
|
13
|
+
```
|
|
18
14
|
|
|
19
|
-
|
|
20
|
-
- ❌ Writing to `.state/.pain_flag` directly (any method)
|
|
21
|
-
- ❌ Using bash heredoc (`cat <<EOF > .pain_flag`)
|
|
22
|
-
- ❌ Using `echo "..." > .pain_flag`
|
|
23
|
-
- ❌ Using `Set-Content` / `Out-File` or other PowerShell file-writing cmdlets
|
|
24
|
-
- ❌ Using `node -e` to call `writePainFlag` or `buildPainFlag`
|
|
25
|
-
- ❌ Any method that `toString()` a JavaScript object to the file
|
|
26
|
-
- ❌ Using `exec` tool to invoke shell commands to write the pain_flag file
|
|
15
|
+
## Forbidden
|
|
27
16
|
|
|
28
|
-
|
|
29
|
-
|
|
17
|
+
- Do not write `.state/.pain_flag` directly.
|
|
18
|
+
- Do not use `write_file`, shell redirection, `Set-Content`, `Out-File`, `node -e`, or any other file-writing method to create `.state/.pain_flag`.
|
|
19
|
+
- Do not use `write_pain_flag`. That was a legacy path.
|
|
30
20
|
|
|
31
|
-
|
|
32
|
-
- `reason` (required): The reason for the pain signal — describe what went wrong
|
|
33
|
-
- `score` (optional): Pain score 0-100, default 80 (manual intervention)
|
|
34
|
-
- `source` (optional): Source, default `human_intervention`
|
|
35
|
-
- `is_risky` (optional): Whether this is a high-risk action, default false
|
|
21
|
+
## Verify
|
|
36
22
|
|
|
37
|
-
|
|
38
|
-
```
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
source: "human_intervention",
|
|
43
|
-
is_risky: false
|
|
44
|
-
})
|
|
23
|
+
Use:
|
|
24
|
+
```bash
|
|
25
|
+
pd runtime probe --runtime pi-ai --workspace "<workspace>" --json
|
|
26
|
+
pd candidate list --workspace "<workspace>" --json
|
|
27
|
+
pd runtime flow show --workspace "<workspace>" --json
|
|
45
28
|
```
|
|
46
29
|
|
|
47
|
-
|
|
48
|
-
1. Recognize trigger condition → read this skill
|
|
49
|
-
2. Call `write_pain_flag` tool with `reason` and other parameters
|
|
50
|
-
3. Confirm tool executed successfully (returns ✅)
|
|
51
|
-
4. Inform user the pain signal has been injected; evolution system will process it on next heartbeat
|
|
52
|
-
5. Do NOT perform any direct file write operations after this
|
|
30
|
+
Success requires non-empty `candidateIds` and `ledgerEntryIds`.
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: pd-runtime-v2
|
|
3
|
+
description: Use this skill when manually triggering, verifying, or debugging Principles Disciple Runtime V2 pain diagnosis. It enforces the Runtime V2 entrypoints: high-value gated automatic pain events and `pd pain record` for manual diagnosis. It forbids writing `.state/.pain_flag` directly.
|
|
4
|
+
disable-model-invocation: false
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# PD Runtime V2 Pain Diagnosis
|
|
8
|
+
|
|
9
|
+
Use Runtime V2 for all pain diagnosis work. Do not use legacy pain flag files as an entrypoint.
|
|
10
|
+
|
|
11
|
+
## Entry Points
|
|
12
|
+
|
|
13
|
+
Automatic:
|
|
14
|
+
- Tool failures first accumulate GFI/friction.
|
|
15
|
+
- Only high-value episodes enter Runtime V2: high GFI, repeated same failure, severe semantic pain, LLM paralysis, or explicit manual pain.
|
|
16
|
+
- Approved `pain_detected` events enter `PainSignalBridge`.
|
|
17
|
+
- The bridge runs `DiagnosticianRunner`, commits candidates, and intakes them into the ledger.
|
|
18
|
+
|
|
19
|
+
Manual:
|
|
20
|
+
```bash
|
|
21
|
+
pd pain record --reason "<reason>" --score <0-100> --workspace "<workspace>" --json
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
Forbidden:
|
|
25
|
+
- Do not write `.state/.pain_flag`.
|
|
26
|
+
- Do not use `write_file`, shell redirection, `Set-Content`, `Out-File`, `node -e`, or any other file-writing method to create `.state/.pain_flag`.
|
|
27
|
+
- Do not use a `write_pain_flag` tool. Runtime V2 does not use that tool.
|
|
28
|
+
|
|
29
|
+
## Status Commands
|
|
30
|
+
|
|
31
|
+
Runtime health:
|
|
32
|
+
```bash
|
|
33
|
+
pd runtime probe --runtime pi-ai --workspace "<workspace>" --json
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
Flow policy:
|
|
37
|
+
```bash
|
|
38
|
+
pd runtime flow show --workspace "<workspace>" --json
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
Candidates:
|
|
42
|
+
```bash
|
|
43
|
+
pd candidate list --workspace "<workspace>" --json
|
|
44
|
+
pd candidate show --candidate-id "<candidateId>" --workspace "<workspace>" --json
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## Success Criteria
|
|
48
|
+
|
|
49
|
+
A diagnosis is successful only when:
|
|
50
|
+
- `status` is `succeeded`
|
|
51
|
+
- `candidateIds` is non-empty
|
|
52
|
+
- `ledgerEntryIds` is non-empty
|
|
53
|
+
|
|
54
|
+
Task creation alone is not success. A run without candidates or ledger entries is failed/retried/incomplete.
|
|
55
|
+
|
|
56
|
+
## If Manual Diagnosis Is Needed
|
|
57
|
+
|
|
58
|
+
1. Use `pd pain record`.
|
|
59
|
+
2. Inspect JSON output.
|
|
60
|
+
3. If `candidateIds` or `ledgerEntryIds` is empty, treat it as not completed.
|
|
61
|
+
4. Use `pd candidate list/show` and `pd runtime flow show` for follow-up.
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
|
|
19
19
|
- **项目最高战略**: `./memory/STRATEGY.md`
|
|
20
20
|
- **项目物理计划**: `./PLAN.md`
|
|
21
|
-
- **痛觉反射信号**:
|
|
21
|
+
- **痛觉反射信号**: Runtime V2 `PainSignalBridge`(手动触发使用 `pd pain record`;`.state/.pain_flag` 仅为 legacy compatibility)
|
|
22
22
|
- **系统能力快照**: `./.state/SYSTEM_CAPABILITIES.json`
|
|
23
23
|
|
|
24
24
|
---
|
|
@@ -63,7 +63,7 @@
|
|
|
63
63
|
|
|
64
64
|
### 心跳时应该检查(轮流执行):
|
|
65
65
|
|
|
66
|
-
- **痛觉与进化**: 检查
|
|
66
|
+
- **痛觉与进化**: 检查 Runtime V2 诊断(`pd pain record`、candidate、ledger)和 `EVOLUTION_QUEUE.json`;`.pain_flag` 仅为 legacy compatibility
|
|
67
67
|
- **战略对齐**: 对比 `CURRENT_FOCUS.md`,确保未偏离重点
|
|
68
68
|
- **环境健康**: 检查工具链状态、项目根目录整洁度
|
|
69
69
|
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
2. **确认工作空间**: 检查当前工作目录是否正确
|
|
17
17
|
3. **读取身份文件**: `SOUL.md`, `USER.md`, `IDENTITY.md`
|
|
18
18
|
4. **检查记忆状态**: 读取今日和昨日的 `memory/YYYY-MM-DD.md`
|
|
19
|
-
5.
|
|
19
|
+
5. **检查 Runtime V2 痛苦诊断**: 使用 `pd candidate list` / ledger state;`.state/.pain_flag` 仅为 legacy compatibility
|
|
20
20
|
|
|
21
21
|
---
|
|
22
22
|
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
|
|
9
9
|
## 🩹 痛觉与进化检查
|
|
10
10
|
|
|
11
|
-
- [ ]
|
|
11
|
+
- [ ] **Runtime V2 pain** — 如果最近有 `pd pain record` 或工具失败,检查 `pd candidate list` / ledger。`.state/.pain_flag` 仅为 legacy compatibility。
|
|
12
12
|
- [ ] **`.state/evolution_queue.json`** — 是否有待处理的进化任务?
|
|
13
13
|
- [ ] **`memory/logs/SYSTEM.log`** — 最近是否有未解决的高优先级问题?
|
|
14
14
|
|
|
@@ -95,4 +95,4 @@
|
|
|
95
95
|
|
|
96
96
|
---
|
|
97
97
|
|
|
98
|
-
*无问题且无需行动,回复 `HEARTBEAT_OK` 节省 Token。*
|
|
98
|
+
*无问题且无需行动,回复 `HEARTBEAT_OK` 节省 Token。*
|
|
@@ -4,77 +4,6 @@
|
|
|
4
4
|
"lastUpdated": "2026-04-04",
|
|
5
5
|
|
|
6
6
|
"agents": {
|
|
7
|
-
"iflow": {
|
|
8
|
-
"command": "iflow --experimental-acp",
|
|
9
|
-
"description": "iFlow CLI with ACP support (智谱 Code Plan / MiniMax Code Plan 付费套餐更稳定,但以下模型全部免费)",
|
|
10
|
-
"version": "0.5.18",
|
|
11
|
-
"models": {
|
|
12
|
-
"glm-4.7": {
|
|
13
|
-
"description": "GLM-4.7 — official recommended model, fast",
|
|
14
|
-
"pricing": "free",
|
|
15
|
-
"recommendedTimeoutSeconds": 1200,
|
|
16
|
-
"features": ["recommended", "fast"],
|
|
17
|
-
"notes": "官方推荐模型,速度快"
|
|
18
|
-
},
|
|
19
|
-
"glm-5": {
|
|
20
|
-
"description": "GLM-5 — 744B parameters, long-context",
|
|
21
|
-
"pricing": "free",
|
|
22
|
-
"recommendedTimeoutSeconds": 1800,
|
|
23
|
-
"features": ["slow", "needs-extra-time"],
|
|
24
|
-
"notes": "744B 参数,运行明显较慢。Review 任务超时必须 ≥ 1800s"
|
|
25
|
-
},
|
|
26
|
-
"qwen3-coder-plus": {
|
|
27
|
-
"description": "Qwen3-Coder-Plus — efficient coding model",
|
|
28
|
-
"pricing": "free",
|
|
29
|
-
"recommendedTimeoutSeconds": 1200,
|
|
30
|
-
"features": ["fast", "coding-optimized"],
|
|
31
|
-
"notes": "通义编码模型"
|
|
32
|
-
},
|
|
33
|
-
"deepseek-v3.2": {
|
|
34
|
-
"description": "DeepSeek V3.2",
|
|
35
|
-
"pricing": "free",
|
|
36
|
-
"recommendedTimeoutSeconds": 1200,
|
|
37
|
-
"features": ["fast"],
|
|
38
|
-
"notes": ""
|
|
39
|
-
},
|
|
40
|
-
"minimax-m2.5": {
|
|
41
|
-
"description": "MiniMax M2.5",
|
|
42
|
-
"pricing": "free",
|
|
43
|
-
"recommendedTimeoutSeconds": 1200,
|
|
44
|
-
"features": ["fast"],
|
|
45
|
-
"notes": ""
|
|
46
|
-
},
|
|
47
|
-
"kimi-k2-thinking": {
|
|
48
|
-
"description": "Kimi K2 Thinking",
|
|
49
|
-
"pricing": "free",
|
|
50
|
-
"recommendedTimeoutSeconds": 1800,
|
|
51
|
-
"features": ["reasoning"],
|
|
52
|
-
"notes": "推理型模型"
|
|
53
|
-
},
|
|
54
|
-
"kimi-k2.5": {
|
|
55
|
-
"description": "Kimi K2.5",
|
|
56
|
-
"pricing": "free",
|
|
57
|
-
"recommendedTimeoutSeconds": 1200,
|
|
58
|
-
"features": ["fast"],
|
|
59
|
-
"notes": ""
|
|
60
|
-
},
|
|
61
|
-
"kimi-k2-0905": {
|
|
62
|
-
"description": "Kimi K2 0905",
|
|
63
|
-
"pricing": "free",
|
|
64
|
-
"recommendedTimeoutSeconds": 1200,
|
|
65
|
-
"features": ["fast"],
|
|
66
|
-
"notes": ""
|
|
67
|
-
},
|
|
68
|
-
"iflow-rome-30ba3b": {
|
|
69
|
-
"description": "iFlow ROME 30BA3B",
|
|
70
|
-
"pricing": "free",
|
|
71
|
-
"recommendedTimeoutSeconds": 1200,
|
|
72
|
-
"features": ["preview"],
|
|
73
|
-
"notes": "预览版本"
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
},
|
|
77
|
-
|
|
78
7
|
"opencode": {
|
|
79
8
|
"command": "npx -y opencode-ai acp",
|
|
80
9
|
"description": "OpenCode ACP adapter",
|
|
@@ -209,6 +138,6 @@
|
|
|
209
138
|
"codex": "codex-acp 在当前环境无法使用,不登记。",
|
|
210
139
|
"kilocode": "kilocode ACP 是 server 模式(监听端口),不是 headless prompt-response,不兼容 acpx,不登记。",
|
|
211
140
|
"qodercli": "qodercli 没有 --acp 标志,不登记。",
|
|
212
|
-
"model_discovery": "opencode 可通过 'opencode models' 自动列出模型。其他 agent(
|
|
141
|
+
"model_discovery": "opencode 可通过 'opencode models' 自动列出模型。其他 agent(gemini, qwen)没有 CLI 列表命令,需手动维护。"
|
|
213
142
|
}
|
|
214
143
|
}
|
|
@@ -33,19 +33,19 @@
|
|
|
33
33
|
"stageTimeoutMinutes": 15,
|
|
34
34
|
"stages": ["investigate", "implement-pass-1", "verify"],
|
|
35
35
|
"producer": {
|
|
36
|
-
"agent": "
|
|
37
|
-
"model": "
|
|
36
|
+
"agent": "opencode",
|
|
37
|
+
"model": "minimax-cn-coding-plan/MiniMax-M2.7",
|
|
38
38
|
"timeoutSeconds": 180
|
|
39
39
|
},
|
|
40
40
|
"reviewerA": {
|
|
41
|
-
"agent": "
|
|
42
|
-
"model": "
|
|
41
|
+
"agent": "opencode",
|
|
42
|
+
"model": "minimax-cn-coding-plan/MiniMax-M2.7",
|
|
43
43
|
"timeoutSeconds": 120,
|
|
44
44
|
"focus": "Validate root cause, behavioral change, and code correctness."
|
|
45
45
|
},
|
|
46
46
|
"reviewerB": {
|
|
47
|
-
"agent": "
|
|
48
|
-
"model": "
|
|
47
|
+
"agent": "opencode",
|
|
48
|
+
"model": "minimax-cn-coding-plan/MiniMax-M2.7",
|
|
49
49
|
"timeoutSeconds": 120,
|
|
50
50
|
"focus": "Validate scope control, verification quality, and regression risk."
|
|
51
51
|
},
|
|
@@ -33,19 +33,19 @@
|
|
|
33
33
|
"stageTimeoutMinutes": 20,
|
|
34
34
|
"stages": ["investigate", "implement-pass-1", "verify"],
|
|
35
35
|
"producer": {
|
|
36
|
-
"agent": "
|
|
37
|
-
"model": "
|
|
36
|
+
"agent": "opencode",
|
|
37
|
+
"model": "minimax-cn-coding-plan/MiniMax-M2.7",
|
|
38
38
|
"timeoutSeconds": 240
|
|
39
39
|
},
|
|
40
40
|
"reviewerA": {
|
|
41
|
-
"agent": "
|
|
42
|
-
"model": "
|
|
41
|
+
"agent": "opencode",
|
|
42
|
+
"model": "minimax-cn-coding-plan/MiniMax-M2.7",
|
|
43
43
|
"timeoutSeconds": 120,
|
|
44
44
|
"focus": "Validate feature behavior, acceptance criteria coverage, and architecture fit."
|
|
45
45
|
},
|
|
46
46
|
"reviewerB": {
|
|
47
|
-
"agent": "
|
|
48
|
-
"model": "
|
|
47
|
+
"agent": "opencode",
|
|
48
|
+
"model": "minimax-cn-coding-plan/MiniMax-M2.7",
|
|
49
49
|
"timeoutSeconds": 120,
|
|
50
50
|
"focus": "Validate implementation scope, verification evidence, and regression risk."
|
|
51
51
|
},
|