@namewta/speculo 0.8.11 → 1.0.1
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/README.md +10 -6
- package/dist/src/cli.js +12 -1
- package/dist/src/cli.js.map +1 -1
- package/dist/src/doctor.d.ts +10 -0
- package/dist/src/doctor.js +70 -0
- package/dist/src/doctor.js.map +1 -0
- package/dist/src/index.js +105 -56
- package/dist/src/index.js.map +1 -1
- package/dist/src/kernel.d.ts +98 -0
- package/dist/src/kernel.js +29 -0
- package/dist/src/kernel.js.map +1 -0
- package/dist/src/refresh.js +55 -24
- package/dist/src/refresh.js.map +1 -1
- package/dist/src/structured.d.ts +2 -2
- package/dist/src/structured.js +114 -241
- package/dist/src/structured.js.map +1 -1
- package/package.json +3 -2
- package/template/.speculo/README.md +1 -1
- package/template/.speculo/capabilities.json +14 -0
- package/template/.speculo/kernel/README.md +10 -0
- package/template/.speculo/kernel/capability-profile.schema.json +14 -0
- package/template/.speculo/kernel/checkpoint.schema.json +7 -0
- package/template/.speculo/kernel/trace-event.schema.json +8 -0
- package/template/.speculo/kernel/workflow-manifest.schema.json +13 -0
- package/template/.speculo/kernel.json +10 -0
- package/template/.speculo/refresh-contract.json +4 -1
- package/template/AGENTS.md +0 -3
- package/template/canonical/canonical-specdev-goal-plan.md +13 -7
- package/template/canonical/canonical-specdev-grill-with-docs.md +1 -1
- package/template/canonical/canonical-specdev-orchestrate-implementation.md +29 -11
- package/template/canonical/canonical-specdev-spec.md +1 -1
- package/template/canonical/canonical-specdev-tickets.md +38 -4
- package/template/commands/archive-and-consolidate.md +13 -40
- package/template/commands/status.md +3 -3
- package/template/skills/engineering-standards-builder/README.md +6 -28
- package/template/skills/engineering-standards-builder/SKILL.md +88 -163
- package/template/skills/engineering-standards-builder/examples/README.md +2 -0
- package/template/skills/engineering-standards-builder/manifest.txt +4 -0
- package/template/skills/engineering-standards-builder/references/rules/00-governance-and-precedence.md +22 -29
- package/template/skills/engineering-standards-builder/references/rules/01-project-discovery.md +26 -59
- package/template/skills/engineering-standards-builder/references/rules/02-evidence-topology-and-scope.md +28 -55
- package/template/skills/engineering-standards-builder/references/rules/03-interview-and-decisions.md +4 -3
- package/template/skills/engineering-standards-builder/references/rules/14-generation-contract.md +64 -80
- package/template/skills/engineering-standards-builder/references/rules/15-validation-contract.md +24 -47
- package/template/skills/engineering-standards-builder/references/rules/16-language-adapter-contract.md +11 -48
- package/template/skills/engineering-standards-builder/references/rules/README.md +3 -3
- package/template/skills/engineering-standards-builder/scripts/self-test.mjs +51 -5
- package/template/skills/engineering-standards-builder/scripts/validate-builder.mjs +16 -4
- package/template/skills/engineering-standards-builder/scripts/validate-generated-skill.mjs +166 -64
- package/template/skills/engineering-standards-builder/templates/README.md +12 -3
- package/template/skills/engineering-standards-builder/templates/domain-skill/SKILL.md.template +32 -0
- package/template/skills/engineering-standards-builder/templates/project-skill/SKILL.md.template +16 -11
- package/template/skills/engineering-standards-builder/templates/project-skill/generated-skill-set.json.template +7 -0
- package/template/skills/engineering-standards-builder/templates/project-skill/references/project/00-project-profile.md.template +3 -1
- package/template/skills/engineering-standards-builder/templates/project-skill/references/project/01-module-map.md.template +4 -0
- package/template/skills/engineering-standards-builder/templates/project-skill/references/project/02-decisions-and-exceptions.md.template +1 -1
- package/template/skills/engineering-standards-builder/templates/project-skill/references/project/03-skill-map.md.template +19 -0
- package/template/skills/engineering-standards-builder/templates/project-skill/references/project/04-source-and-template-map.md.template +22 -0
- package/template/skills/engineering-standards-builder/templates/project-skill/references/project/review-checklist.md.template +2 -0
- package/template/skills/git-history-squash/SKILL.md +100 -0
- package/template/skills/git-history-squash/assets/request-template.json +18 -0
- package/template/skills/git-history-squash/references/recovery-contract.md +50 -0
- package/template/skills/git-history-squash/references/rewrite-contract.md +123 -0
- package/template/skills/git-history-squash/references/submodule-contract.md +54 -0
- package/template/skills/git-history-squash/scripts/git-history-squash.mjs +1171 -0
- package/template/workflows/learning/A-archive/A-archive.md +25 -0
- package/template/workflows/learning/A-assess-and-plan/A-assess-and-plan.md +17 -23
- package/template/workflows/learning/A-assess-and-plan/background-template.md +13 -0
- package/template/workflows/learning/A-assess-and-plan/change-status-template.json +21 -14
- package/template/workflows/learning/A-assess-and-plan/course-template.md +28 -0
- package/template/workflows/learning/C-consolidate/C-consolidate.md +33 -0
- package/template/workflows/learning/H-homework/H-homework.md +31 -0
- package/template/workflows/learning/H-homework/homework-template.md +63 -0
- package/template/workflows/learning/I-init-setup/I-init-setup.md +14 -19
- package/template/workflows/learning/I-init-setup/context-index-template.md +3 -3
- package/template/workflows/learning/I-init-setup/learner-profile-template.md +12 -10
- package/template/workflows/learning/I-init-setup/review-index-template.md +1 -1
- package/template/workflows/learning/INDEX.md +7 -9
- package/template/workflows/learning/L-lesson/L-lesson.md +32 -0
- package/template/workflows/learning/L-lesson/lesson-template.md +51 -0
- package/template/workflows/learning/R-review/R-review.md +13 -18
- package/template/workflows/learning/R-review/review-template.md +13 -6
- package/template/workflows/learning/README.md +86 -81
- package/template/workflows/learning/_state/status.json +1 -1
- package/template/workflows/learning/common/rules/artifact-contract.md +11 -25
- package/template/workflows/learning/common/rules/assessment-policy.md +9 -4
- package/template/workflows/learning/common/rules/knowledge-organization.md +4 -6
- package/template/workflows/learning/common/rules/mastery-policy.md +3 -19
- package/template/workflows/learning/common/rules/path-reference-contract.md +3 -5
- package/template/workflows/learning/common/rules/teaching-policy.md +9 -9
- package/template/workflows/learning/common/schemas/change-status.schema.json +46 -18
- package/template/workflows/learning/common/schemas/status.schema.json +25 -24
- package/template/workflows/learning/common/skills/topic-synthesis/SKILL.md +17 -0
- package/template/workflows/learning/common/skills/topic-synthesis/claim-template.md +15 -0
- package/template/workflows/learning/common/tools/relocate-learning.mjs +208 -0
- package/template/workflows/learning/common/tools/validate-learning.mjs +195 -297
- package/template/workflows/learning/manifest.json +1 -0
- package/template/workflows/learning/runtime-contract.json +3 -2
- package/template/workflows/ops/manifest.json +1 -0
- package/template/workflows/person/manifest.json +1 -0
- package/template/workflows/specdev/I-implement/I-implement.md +12 -4
- package/template/workflows/specdev/I-implement/execution-preflight.md +4 -0
- package/template/workflows/specdev/README.md +1 -1
- package/template/workflows/specdev/T-tickets/T-tickets.md +16 -3
- package/template/workflows/specdev/T-tickets/ticket-readiness.md +3 -0
- package/template/workflows/specdev/T-tickets/ticket-template.md +3 -0
- package/template/workflows/specdev/T-tickets/tickets-map-template.md +15 -0
- package/template/workflows/specdev/common/rules/artifact-contract.md +1 -1
- package/template/workflows/specdev/common/skills/subagent-delivery/SKILL.md +4 -2
- package/template/workflows/specdev/common/skills/subagent-delivery/references/external-web-subagent.md +2 -1
- package/template/workflows/specdev/common/skills/subagent-delivery/references/native-subagent.md +2 -1
- package/template/workflows/specdev/common/skills/subagent-delivery/references/source-package.md +4 -2
- package/template/workflows/specdev/common/tools/validate-specdev.mjs +143 -3
- package/template/workflows/specdev/manifest.json +1 -0
- package/template/workflows/workflow-manifest.schema.json +14 -0
- package/template/workflows/learning/A-archive-and-consolidate/A-archive-and-consolidate.md +0 -38
- package/template/workflows/learning/A-archive-and-consolidate/promotion-plan-template.md +0 -23
- package/template/workflows/learning/A-assess-and-plan/learning-plan-template.md +0 -28
- package/template/workflows/learning/E-eli5/E-eli5.md +0 -37
- package/template/workflows/learning/E-eli5/lesson-template.md +0 -31
- package/template/workflows/learning/P-practice/P-practice.md +0 -34
- package/template/workflows/learning/P-practice/practice-template.md +0 -16
- package/template/workflows/learning/Q-quiz/Q-quiz.md +0 -34
- package/template/workflows/learning/Q-quiz/quiz-artifact-template.md +0 -16
- package/template/workflows/learning/common/skills/knowledge-promotion/SKILL.md +0 -46
- package/template/workflows/learning/common/skills/knowledge-promotion/domain-index-template.md +0 -6
- package/template/workflows/learning/common/skills/knowledge-promotion/domain-overview-template.md +0 -19
- package/template/workflows/learning/common/skills/knowledge-promotion/knowledge-template.md +0 -25
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# @namewta/speculo
|
|
2
2
|
|
|
3
|
-
>
|
|
3
|
+
> Provider-neutral, resumable AI collaboration workflows with state-safe refresh tooling.
|
|
4
4
|
|
|
5
5
|
Speculo packages AI coding workflows as installable assets — commands, skills, workflow packages — delivered into any project via a unified CLI.
|
|
6
6
|
|
|
@@ -23,16 +23,19 @@ After initialization, the target project's `speculo/` directory contains all cor
|
|
|
23
23
|
npm install -g @namewta/speculo
|
|
24
24
|
```
|
|
25
25
|
|
|
26
|
-
Requires: Node.js ≥ 22.22.3
|
|
26
|
+
Requires: Node.js ≥ 22.22.3 and < 25
|
|
27
27
|
|
|
28
28
|
## Commands
|
|
29
29
|
|
|
30
30
|
| Command | Description |
|
|
31
31
|
|---|---|
|
|
32
|
-
| `speculo` / `speculo init [target]` | Initialize or refresh Speculo
|
|
32
|
+
| `speculo` / `speculo init [target]` | Initialize or refresh a Speculo 1.0 runtime. 0.x installations are intentionally incompatible and must be removed or renamed first. |
|
|
33
33
|
| `speculo version` | Print the installed version and check npm for the latest release. |
|
|
34
|
+
| `speculo doctor [target]` | Read-only validation of the kernel, manifest and runtime installation. |
|
|
34
35
|
|
|
35
|
-
Legacy CLI commands
|
|
36
|
+
Legacy CLI commands and 0.x migration paths are removed. The CLI exposes `init`, `version`, and read-only `doctor`.
|
|
37
|
+
|
|
38
|
+
Initialization updates only a controlled persistent-knowledge block in project `AGENTS.md` for the selected workflows. The block contains references to promoted knowledge paths and explicitly remains lazy: it does not activate a workflow, create a Change, or execute a Work. A missing `CLAUDE.md` is created as a fixed redirect to `AGENTS.md`; existing handbook content is preserved.
|
|
36
39
|
|
|
37
40
|
## Installed Runtime Assets
|
|
38
41
|
|
|
@@ -49,13 +52,14 @@ After initialization, the target project gains the following AI agent-callable a
|
|
|
49
52
|
| `retro` | Retrospective analysis with `gh issue` creation |
|
|
50
53
|
| `status` | Summary of installed workflows, active changes, and anomalies |
|
|
51
54
|
|
|
52
|
-
###
|
|
55
|
+
### 10 Skills
|
|
53
56
|
|
|
54
57
|
| Skill | Purpose |
|
|
55
58
|
|---|---|
|
|
56
59
|
| `archive-and-consolidate` | Archive stale content, consolidate scattered knowledge, and clean up outdated assets |
|
|
57
60
|
| `docs-sync` | Documentation audit plus incremental or full AGENTS.md / CLAUDE.md handbook synchronization |
|
|
58
61
|
| `github-npm-ops` | GitHub issue/PR triage and npm operations |
|
|
62
|
+
| `git-history-squash` | Controlled first-parent history convergence with recoverable local ref transactions and exact remote leases |
|
|
59
63
|
| `optimize-codex-config` | Audit and optimize local Codex configuration, custom Responses providers, permissions, and compaction failures |
|
|
60
64
|
| `source-code-zip` | Create a dependency-free, code-only ZIP for isolated source delivery |
|
|
61
65
|
| `speculo-retro` | Retrospective analysis |
|
|
@@ -67,7 +71,7 @@ After initialization, the target project gains the following AI agent-callable a
|
|
|
67
71
|
|
|
68
72
|
| Workflow | Work Entries | Description |
|
|
69
73
|
|---|---:|---|
|
|
70
|
-
| **learning** | 7 | Evidence-
|
|
74
|
+
| **learning** | 7 | Evidence-aware learning for projects, products, subjects, languages, and skills: complete 30–40 minute plain-language lessons, single-file homework review, optional retention review, and provenance-preserving topic synthesis |
|
|
71
75
|
| **specdev** | 13 | Local-first specification-driven development: archive, code review, diagnosis, grilling, implementation, setup, goal planning, prototyping, architecture review, specs, tickets, triage, and wayfinding |
|
|
72
76
|
| **person** | 2 | Persona-methodology and rigorous deliberation workflows (Mao Zedong Cognitive OS; Bidirectional Steelman Deliberation) |
|
|
73
77
|
|
package/dist/src/cli.js
CHANGED
|
@@ -4,6 +4,7 @@ import { fileURLToPath } from "node:url";
|
|
|
4
4
|
import { initSpeculo } from "./index.js";
|
|
5
5
|
import { RefreshBlockedError } from "./refresh.js";
|
|
6
6
|
import { checkForUpdate, formatVersionBanner } from "./version.js";
|
|
7
|
+
import { doctorSpeculo } from "./doctor.js";
|
|
7
8
|
const REMOVED_COMMANDS = new Set(["migrate", "mirror-skills", "update"]);
|
|
8
9
|
const REMOVED_OPTIONS = new Set(["--all", "--apply", "--dry-run"]);
|
|
9
10
|
function usage() {
|
|
@@ -11,10 +12,12 @@ function usage() {
|
|
|
11
12
|
"Usage:",
|
|
12
13
|
" speculo [init] [target]",
|
|
13
14
|
" speculo version",
|
|
15
|
+
" speculo doctor [target]",
|
|
14
16
|
"",
|
|
15
17
|
"Commands:",
|
|
16
18
|
" init Install or directly refresh Speculo assets and selected workflow packages.",
|
|
17
19
|
" version Print the current Speculo version and check for updates.",
|
|
20
|
+
" doctor Validate an installed Speculo 1.0 runtime (read-only).",
|
|
18
21
|
].join("\n");
|
|
19
22
|
}
|
|
20
23
|
function isInteractive() {
|
|
@@ -56,6 +59,14 @@ async function main(argv) {
|
|
|
56
59
|
await showVersionWithCheck(packageRoot, packageName);
|
|
57
60
|
return 0;
|
|
58
61
|
}
|
|
62
|
+
if (command === "doctor") {
|
|
63
|
+
if (rest.length > 1)
|
|
64
|
+
throw new Error("speculo doctor accepts at most one target.");
|
|
65
|
+
const result = await doctorSpeculo(rest[0] ?? ".");
|
|
66
|
+
for (const check of result.checks)
|
|
67
|
+
console.log(`${check.ok ? "ok" : "fail"} ${check.id}: ${check.message}`);
|
|
68
|
+
return result.healthy ? 0 : 2;
|
|
69
|
+
}
|
|
59
70
|
const targetArg = command === "init" ? rest[0] : command;
|
|
60
71
|
const extra = command === "init" ? rest[1] : rest[0];
|
|
61
72
|
if (extra)
|
|
@@ -75,7 +86,7 @@ async function main(argv) {
|
|
|
75
86
|
result.refresh.config.updated + " updated, " + result.refresh.config.preserved + " preserved, " +
|
|
76
87
|
result.refresh.config.removed + " removed");
|
|
77
88
|
if (result.refresh.structuredUpgrades > 0)
|
|
78
|
-
console.log("
|
|
89
|
+
console.log(" reconciled " + result.refresh.structuredUpgrades + " structured state files");
|
|
79
90
|
if (result.refresh.backupPath)
|
|
80
91
|
console.log(" retained targeted backup " + result.refresh.backupPath);
|
|
81
92
|
for (const asset of result.assets.filter((asset) => asset.startsWith(".gitignore") || asset.startsWith("AGENTS") || asset.startsWith("CLAUDE"))) {
|
package/dist/src/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAoB,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { readFile } from "node:fs/promises";
|
|
2
|
+
import { join, resolve } from "node:path";
|
|
3
|
+
import { pathExists } from "./utils.js";
|
|
4
|
+
async function json(path) {
|
|
5
|
+
return JSON.parse(await readFile(path, "utf8"));
|
|
6
|
+
}
|
|
7
|
+
function record(value) {
|
|
8
|
+
return value !== null && typeof value === "object" && !Array.isArray(value)
|
|
9
|
+
? value
|
|
10
|
+
: null;
|
|
11
|
+
}
|
|
12
|
+
async function checkJson(checks, root, id, predicate, message) {
|
|
13
|
+
try {
|
|
14
|
+
const value = record(await json(join(root, id)));
|
|
15
|
+
const ok = value !== null && predicate(value);
|
|
16
|
+
checks.push({ id: id + "-contract", ok, message: ok ? message : "invalid contract" });
|
|
17
|
+
}
|
|
18
|
+
catch {
|
|
19
|
+
checks.push({ id: id + "-contract", ok: false, message: "invalid JSON" });
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
export async function doctorSpeculo(targetArg = ".") {
|
|
23
|
+
const target = resolve(targetArg);
|
|
24
|
+
const root = join(target, "speculo");
|
|
25
|
+
const checks = [];
|
|
26
|
+
const required = [".speculo/workspace.json", ".speculo/install.json", ".speculo/managed.json", ".speculo/kernel.json", ".speculo/capabilities.json", "config.json"];
|
|
27
|
+
for (const item of required)
|
|
28
|
+
checks.push({ id: item, ok: await pathExists(join(root, item)), message: (await pathExists(join(root, item))) ? "present" : "missing" });
|
|
29
|
+
const installCheck = checks.find((check) => check.id === ".speculo/install.json");
|
|
30
|
+
if (installCheck?.ok) {
|
|
31
|
+
try {
|
|
32
|
+
const install = await json(join(root, ".speculo/install.json"));
|
|
33
|
+
const ok = install.schema_version === 3 && typeof install.package_version === "string" && String(install.package_version).startsWith("1.");
|
|
34
|
+
checks.push({ id: "install-contract", ok, message: ok ? "Speculo 1.x manifest" : "legacy or invalid manifest" });
|
|
35
|
+
}
|
|
36
|
+
catch {
|
|
37
|
+
checks.push({ id: "install-contract", ok: false, message: "invalid JSON" });
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
const managedCheck = checks.find((check) => check.id === ".speculo/managed.json");
|
|
41
|
+
if (managedCheck?.ok) {
|
|
42
|
+
try {
|
|
43
|
+
const managed = await json(join(root, ".speculo/managed.json"));
|
|
44
|
+
const ok = managed.schema_version === 2 && Array.isArray(managed.files);
|
|
45
|
+
checks.push({ id: "managed-contract", ok, message: ok ? "managed manifest valid" : "invalid managed manifest" });
|
|
46
|
+
}
|
|
47
|
+
catch {
|
|
48
|
+
checks.push({ id: "managed-contract", ok: false, message: "invalid JSON" });
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
if (checks.find((check) => check.id === ".speculo/workspace.json")?.ok) {
|
|
52
|
+
await checkJson(checks, root, ".speculo/workspace.json", (value) => value.schema_version === 1 && record(value.roots) !== null, "workspace contract valid");
|
|
53
|
+
}
|
|
54
|
+
if (checks.find((check) => check.id === ".speculo/kernel.json")?.ok) {
|
|
55
|
+
await checkJson(checks, root, ".speculo/kernel.json", (value) => value.schema_version === 1 && Array.isArray(value.change_lifecycle) && Array.isArray(value.risk_classes), "runtime kernel contract valid");
|
|
56
|
+
}
|
|
57
|
+
if (checks.find((check) => check.id === ".speculo/capabilities.json")?.ok) {
|
|
58
|
+
await checkJson(checks, root, ".speculo/capabilities.json", (value) => {
|
|
59
|
+
const model = record(value.model);
|
|
60
|
+
const tools = record(value.tools);
|
|
61
|
+
return value.schema_version === 1 && model !== null && typeof model.id === "string" && Number.isFinite(model.context_window) && tools !== null && Array.isArray(tools.classes);
|
|
62
|
+
}, "capability profile valid");
|
|
63
|
+
}
|
|
64
|
+
const checkpointRoot = join(root, ".speculo", "context");
|
|
65
|
+
if (await pathExists(checkpointRoot)) {
|
|
66
|
+
checks.push({ id: "context-checkpoints", ok: true, message: "context directory present" });
|
|
67
|
+
}
|
|
68
|
+
return { target, healthy: checks.every((check) => check.ok), checks };
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=doctor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/doctor.ts"],"names":[],"mappings":"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"}
|
package/dist/src/index.js
CHANGED
|
@@ -8,9 +8,12 @@ const CORE_ASSETS = [".speculo", "commands", "skills", "config.json"];
|
|
|
8
8
|
const INSTALL_SUBDIR = "speculo";
|
|
9
9
|
const WORKFLOW_ENTRY = "INDEX.md";
|
|
10
10
|
const STATE_TEMPLATE_DIR = "_state";
|
|
11
|
-
const SPECULO_TAG_RE = /<SPECULO>[\s\S]*?<\/SPECULO>/;
|
|
12
11
|
const SPECDEV_WORKTREE_IGNORE = "specdev-worktree/";
|
|
13
12
|
const SPECULO_BACKUP_IGNORE = "speculo/.speculo/back/";
|
|
13
|
+
const KNOWLEDGE_START = "<!-- SPECULO-PERSISTENT-KNOWLEDGE:START -->";
|
|
14
|
+
const KNOWLEDGE_END = "<!-- SPECULO-PERSISTENT-KNOWLEDGE:END -->";
|
|
15
|
+
const LEGACY_SPECULO_BLOCK = /<SPECULO>[\s\S]*?<\/SPECULO>/g;
|
|
16
|
+
const KNOWLEDGE_BLOCK = /<!-- SPECULO-PERSISTENT-KNOWLEDGE:START -->[\s\S]*?<!-- SPECULO-PERSISTENT-KNOWLEDGE:END -->/g;
|
|
14
17
|
function assetRoot(packageRoot) {
|
|
15
18
|
return join(packageRoot, "template");
|
|
16
19
|
}
|
|
@@ -60,63 +63,74 @@ async function ensureRuntimeIgnores(target, root) {
|
|
|
60
63
|
await writeFile(ignorePath, content, "utf8");
|
|
61
64
|
return ".gitignore (updated runtime ignores)";
|
|
62
65
|
}
|
|
63
|
-
function
|
|
66
|
+
async function readPersistentKnowledge(packageRoot, workflowIds) {
|
|
67
|
+
const references = [];
|
|
68
|
+
for (const workflowId of workflowIds) {
|
|
69
|
+
const manifestPath = join(assetRoot(packageRoot), "workflows", workflowId, "manifest.json");
|
|
70
|
+
let manifest;
|
|
71
|
+
try {
|
|
72
|
+
manifest = JSON.parse(await readFile(manifestPath, "utf8"));
|
|
73
|
+
}
|
|
74
|
+
catch (error) {
|
|
75
|
+
throw new Error("Invalid workflow manifest: " + manifestPath + " (" + String(error) + ")");
|
|
76
|
+
}
|
|
77
|
+
if (manifest === null || typeof manifest !== "object" || Array.isArray(manifest)) {
|
|
78
|
+
throw new Error("Invalid workflow manifest object: " + manifestPath);
|
|
79
|
+
}
|
|
80
|
+
const knowledge = manifest.persistent_knowledge;
|
|
81
|
+
if (knowledge === undefined)
|
|
82
|
+
continue;
|
|
83
|
+
if (!Array.isArray(knowledge) || knowledge.some((path) => typeof path !== "string")) {
|
|
84
|
+
throw new Error("workflow manifest persistent_knowledge must be a string array: " + workflowId);
|
|
85
|
+
}
|
|
86
|
+
for (const path of knowledge) {
|
|
87
|
+
if (!/^<Path>\{roots\.state\}\/[^<]+<\/Path>$/.test(path) || path.includes("workflows/") || path.includes("_state/") || path.includes("/changes/") || path.includes("/archive/")) {
|
|
88
|
+
throw new Error("Unsafe workflow manifest persistent_knowledge path: " + workflowId + " -> " + path);
|
|
89
|
+
}
|
|
90
|
+
references.push({ workflow: workflowId, path });
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
return references;
|
|
94
|
+
}
|
|
95
|
+
function renderKnowledgeBlock(references) {
|
|
96
|
+
if (references.length === 0)
|
|
97
|
+
return "";
|
|
64
98
|
const lines = [
|
|
65
|
-
|
|
99
|
+
KNOWLEDGE_START,
|
|
100
|
+
"## Speculo 永久知识",
|
|
66
101
|
"",
|
|
67
|
-
"
|
|
68
|
-
"",
|
|
69
|
-
"运行时必须读取以下文件以确认 Speculo 初始化状态:",
|
|
70
|
-
"",
|
|
71
|
-
"- ./speculo/.speculo/workspace.json — 工作区根别名配置",
|
|
72
|
-
"- ./speculo/config.json — 项目配置文件",
|
|
73
|
-
"",
|
|
74
|
-
"若上述文件不存在或内容为空,说明项目尚未完成 Speculo 初始化。",
|
|
75
|
-
"此时必须提示用户:请先运行 speculo init 完成初始化配置。",
|
|
76
|
-
"",
|
|
77
|
-
"`speculo init` 会直接替换受管理静态资产,并依据 refresh contract 保留用户 runtime state、合并持久配置。",
|
|
78
|
-
"结构化状态不兼容时初始化会在替换前停止,当前安装保持不变。",
|
|
102
|
+
"以下路径只在当前任务相关时按需读取,不会自动激活 workflow 或 Work:",
|
|
79
103
|
"",
|
|
80
104
|
];
|
|
81
|
-
|
|
82
|
-
lines.push("
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
}
|
|
86
|
-
lines.push("");
|
|
87
|
-
}
|
|
88
|
-
return "<SPECULO>\n" + lines.join("\n") + "</SPECULO>";
|
|
105
|
+
for (const reference of references)
|
|
106
|
+
lines.push("- " + reference.workflow + ":" + reference.path);
|
|
107
|
+
lines.push(KNOWLEDGE_END);
|
|
108
|
+
return lines.join("\n");
|
|
89
109
|
}
|
|
90
|
-
|
|
110
|
+
function updateAgentsContent(content, references) {
|
|
111
|
+
const next = content.replace(LEGACY_SPECULO_BLOCK, "").replace(KNOWLEDGE_BLOCK, "");
|
|
112
|
+
const block = renderKnowledgeBlock(references);
|
|
113
|
+
if (!block)
|
|
114
|
+
return next;
|
|
115
|
+
if (!next)
|
|
116
|
+
return block + "\n";
|
|
117
|
+
const separator = next.endsWith("\n\n") ? "" : next.endsWith("\n") ? "\n" : "\n\n";
|
|
118
|
+
return next + separator + block + "\n";
|
|
119
|
+
}
|
|
120
|
+
async function writeAgentFiles(target, references) {
|
|
91
121
|
const written = [];
|
|
92
|
-
const speculoBlock = generateSpeculoContent(selection);
|
|
93
|
-
const claudePath = join(target, "CLAUDE.md");
|
|
94
|
-
if (!(await pathExists(claudePath))) {
|
|
95
|
-
const claudeTemplate = join(assetRoot(packageRoot), "CLAUDE.md");
|
|
96
|
-
if (await pathExists(claudeTemplate)) {
|
|
97
|
-
await cp(claudeTemplate, claudePath);
|
|
98
|
-
}
|
|
99
|
-
else {
|
|
100
|
-
await writeFile(claudePath, "# CLAUDE.md\n\n必须查看 [@AGENTS.md](./AGENTS.md) 文档,按照 Speculo 规范进行开发。\n", "utf8");
|
|
101
|
-
}
|
|
102
|
-
written.push("CLAUDE.md");
|
|
103
|
-
}
|
|
104
122
|
const agentsPath = join(target, "AGENTS.md");
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
await writeFile(agentsPath,
|
|
110
|
-
written.push(
|
|
123
|
+
const hadAgents = await pathExists(agentsPath);
|
|
124
|
+
const beforeAgents = hadAgents ? await readFile(agentsPath, "utf8") : "";
|
|
125
|
+
const afterAgents = updateAgentsContent(hadAgents ? beforeAgents : "# AGENTS.md\n", references);
|
|
126
|
+
if (!hadAgents || afterAgents !== beforeAgents) {
|
|
127
|
+
await writeFile(agentsPath, afterAgents, "utf8");
|
|
128
|
+
written.push(hadAgents ? "AGENTS.md (updated persistent knowledge)" : "AGENTS.md (created persistent knowledge)");
|
|
111
129
|
}
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
: Promise.resolve("# AGENTS.md\n\n<SPECULO>\n</SPECULO>\n"));
|
|
117
|
-
content = content.replace(SPECULO_TAG_RE, speculoBlock);
|
|
118
|
-
await writeFile(agentsPath, content, "utf8");
|
|
119
|
-
written.push("AGENTS.md");
|
|
130
|
+
const claudePath = join(target, "CLAUDE.md");
|
|
131
|
+
if (!(await pathExists(claudePath))) {
|
|
132
|
+
await writeFile(claudePath, "# CLAUDE.md\n\nSpeculo agent handbook: see [AGENTS.md](./AGENTS.md).\n", "utf8");
|
|
133
|
+
written.push("CLAUDE.md (created redirect)");
|
|
120
134
|
}
|
|
121
135
|
return written;
|
|
122
136
|
}
|
|
@@ -194,7 +208,26 @@ async function buildStagedInstall(packageRoot, target, previousRoot, catalog, se
|
|
|
194
208
|
throw error;
|
|
195
209
|
}
|
|
196
210
|
}
|
|
197
|
-
async function
|
|
211
|
+
async function snapshotExternalFiles(target) {
|
|
212
|
+
const snapshots = [];
|
|
213
|
+
for (const name of [".gitignore", "AGENTS.md", "CLAUDE.md"]) {
|
|
214
|
+
const path = join(target, name);
|
|
215
|
+
if (await pathExists(path))
|
|
216
|
+
snapshots.push({ path, existed: true, content: await readFile(path) });
|
|
217
|
+
else
|
|
218
|
+
snapshots.push({ path, existed: false });
|
|
219
|
+
}
|
|
220
|
+
return snapshots;
|
|
221
|
+
}
|
|
222
|
+
async function restoreExternalFiles(snapshots) {
|
|
223
|
+
for (const snapshot of snapshots) {
|
|
224
|
+
if (snapshot.existed)
|
|
225
|
+
await writeFile(snapshot.path, snapshot.content ?? Buffer.alloc(0));
|
|
226
|
+
else
|
|
227
|
+
await rm(snapshot.path, { force: true });
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
async function replaceInstall(stagedRoot, root, finalize) {
|
|
198
231
|
const expectedFingerprint = await fingerprintTree(stagedRoot);
|
|
199
232
|
if (!(await pathExists(root))) {
|
|
200
233
|
await rename(stagedRoot, root);
|
|
@@ -202,6 +235,13 @@ async function replaceInstall(stagedRoot, root) {
|
|
|
202
235
|
await rename(root, stagedRoot);
|
|
203
236
|
throw new Error("post-install validation failed");
|
|
204
237
|
}
|
|
238
|
+
try {
|
|
239
|
+
await finalize?.();
|
|
240
|
+
}
|
|
241
|
+
catch (error) {
|
|
242
|
+
await rm(root, { recursive: true, force: true });
|
|
243
|
+
throw error;
|
|
244
|
+
}
|
|
205
245
|
return;
|
|
206
246
|
}
|
|
207
247
|
const backupRoot = stagedRoot + "-backup";
|
|
@@ -210,6 +250,7 @@ async function replaceInstall(stagedRoot, root) {
|
|
|
210
250
|
await rename(stagedRoot, root);
|
|
211
251
|
if (await fingerprintTree(root) !== expectedFingerprint)
|
|
212
252
|
throw new Error("post-install validation failed");
|
|
253
|
+
await finalize?.();
|
|
213
254
|
}
|
|
214
255
|
catch (error) {
|
|
215
256
|
try {
|
|
@@ -258,13 +299,21 @@ export async function initSpeculo(targetArg = ".", options = {}) {
|
|
|
258
299
|
message: "the active installation changed while refresh staging was in progress",
|
|
259
300
|
}]);
|
|
260
301
|
}
|
|
261
|
-
await replaceInstall(stagedRoot, root);
|
|
262
|
-
stagedRoot = undefined;
|
|
263
302
|
const assets = [".speculo", "config.json", "commands", "skills"];
|
|
264
303
|
assets.push(...selection.workflowIds.map((workflowId) => "workflows/" + workflowId));
|
|
265
|
-
const
|
|
266
|
-
|
|
267
|
-
|
|
304
|
+
const references = await readPersistentKnowledge(packageRoot, selection.workflowIds);
|
|
305
|
+
const externalSnapshot = await snapshotExternalFiles(target);
|
|
306
|
+
await replaceInstall(stagedRoot, root, async () => {
|
|
307
|
+
try {
|
|
308
|
+
assets.push(await ensureRuntimeIgnores(target, root));
|
|
309
|
+
assets.push(...await writeAgentFiles(target, references));
|
|
310
|
+
}
|
|
311
|
+
catch (error) {
|
|
312
|
+
await restoreExternalFiles(externalSnapshot);
|
|
313
|
+
throw error;
|
|
314
|
+
}
|
|
315
|
+
});
|
|
316
|
+
stagedRoot = undefined;
|
|
268
317
|
if (!refresh)
|
|
269
318
|
throw new Error("Speculo refresh result was not produced");
|
|
270
319
|
return { target, mode: existed ? "refresh" : "init", assets, refresh };
|
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
export type ChangeLifecycle = "draft" | "active" | "blocked" | "awaiting_user" | "completed" | "archived" | "cancelled";
|
|
2
|
+
export type RiskClass = "read-only" | "local-reversible" | "local-destructive" | "external-mutation" | "production-critical";
|
|
3
|
+
export type ToolEffect = RiskClass;
|
|
4
|
+
export type DispatchTransport = "native" | "mounted-workspace" | "mcp" | "sandbox" | "archive";
|
|
5
|
+
export type DispatchEnvelope = {
|
|
6
|
+
schema_version: 1;
|
|
7
|
+
change_id: string;
|
|
8
|
+
workflow: string;
|
|
9
|
+
stage: string;
|
|
10
|
+
transport: DispatchTransport;
|
|
11
|
+
required_capabilities: Partial<{
|
|
12
|
+
context_window: number;
|
|
13
|
+
sandbox: boolean;
|
|
14
|
+
network: boolean;
|
|
15
|
+
parallel: boolean;
|
|
16
|
+
programmatic: boolean;
|
|
17
|
+
}>;
|
|
18
|
+
input_artifacts: string[];
|
|
19
|
+
output_artifacts: string[];
|
|
20
|
+
risk: RiskClass;
|
|
21
|
+
};
|
|
22
|
+
export type ToolInvocation = {
|
|
23
|
+
name: string;
|
|
24
|
+
effect: ToolEffect;
|
|
25
|
+
intent: string;
|
|
26
|
+
parameters_digest: string;
|
|
27
|
+
result: "succeeded" | "failed" | "blocked";
|
|
28
|
+
postcondition: string;
|
|
29
|
+
provenance: string[];
|
|
30
|
+
};
|
|
31
|
+
export type CapabilityProfile = {
|
|
32
|
+
schema_version: 1;
|
|
33
|
+
model: {
|
|
34
|
+
id: string;
|
|
35
|
+
provider?: string;
|
|
36
|
+
modalities: string[];
|
|
37
|
+
context_window: number;
|
|
38
|
+
max_output: number;
|
|
39
|
+
reasoning_levels: string[];
|
|
40
|
+
};
|
|
41
|
+
tools: {
|
|
42
|
+
classes: string[];
|
|
43
|
+
parallel: boolean;
|
|
44
|
+
programmatic: boolean;
|
|
45
|
+
};
|
|
46
|
+
execution: {
|
|
47
|
+
sandbox: boolean;
|
|
48
|
+
network: boolean;
|
|
49
|
+
filesystem_roots: string[];
|
|
50
|
+
data_retention: "none" | "session" | "persistent";
|
|
51
|
+
};
|
|
52
|
+
memory: {
|
|
53
|
+
compaction: boolean;
|
|
54
|
+
persistent: boolean;
|
|
55
|
+
cache: boolean;
|
|
56
|
+
};
|
|
57
|
+
};
|
|
58
|
+
export type WorkflowManifest = {
|
|
59
|
+
schema_version: 1;
|
|
60
|
+
id: string;
|
|
61
|
+
version: string;
|
|
62
|
+
stages: Array<{
|
|
63
|
+
id: string;
|
|
64
|
+
after: string[];
|
|
65
|
+
inputs: string[];
|
|
66
|
+
outputs: string[];
|
|
67
|
+
risk: RiskClass;
|
|
68
|
+
context_budget: number;
|
|
69
|
+
}>;
|
|
70
|
+
};
|
|
71
|
+
export type ContextCheckpoint = {
|
|
72
|
+
schema_version: 1;
|
|
73
|
+
change_id: string;
|
|
74
|
+
stage: string;
|
|
75
|
+
locked_decisions: string[];
|
|
76
|
+
open_questions: string[];
|
|
77
|
+
next_action: string;
|
|
78
|
+
evidence: string[];
|
|
79
|
+
state_digest: string;
|
|
80
|
+
created_at: string;
|
|
81
|
+
};
|
|
82
|
+
export type TraceEvent = {
|
|
83
|
+
schema_version: 1;
|
|
84
|
+
sequence: number;
|
|
85
|
+
at: string;
|
|
86
|
+
kind: "capability" | "context" | "tool" | "transition" | "approval" | "evidence";
|
|
87
|
+
payload: Record<string, unknown>;
|
|
88
|
+
};
|
|
89
|
+
export declare function assertCapability(profile: CapabilityProfile, requirements: Partial<{
|
|
90
|
+
context_window: number;
|
|
91
|
+
sandbox: boolean;
|
|
92
|
+
network: boolean;
|
|
93
|
+
parallel: boolean;
|
|
94
|
+
programmatic: boolean;
|
|
95
|
+
}>): void;
|
|
96
|
+
export declare function assertTransition(from: ChangeLifecycle, to: ChangeLifecycle): void;
|
|
97
|
+
export declare function riskRequiresApproval(risk: RiskClass): boolean;
|
|
98
|
+
export declare function assertToolEffect(effect: ToolEffect, risk: RiskClass): void;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export function assertCapability(profile, requirements) {
|
|
2
|
+
if (requirements.context_window !== undefined && profile.model.context_window < requirements.context_window)
|
|
3
|
+
throw new Error("capability-context-window-insufficient");
|
|
4
|
+
if (requirements.sandbox === true && !profile.execution.sandbox)
|
|
5
|
+
throw new Error("capability-sandbox-required");
|
|
6
|
+
if (requirements.network === true && !profile.execution.network)
|
|
7
|
+
throw new Error("capability-network-required");
|
|
8
|
+
if (requirements.parallel === true && !profile.tools.parallel)
|
|
9
|
+
throw new Error("capability-parallel-tools-required");
|
|
10
|
+
if (requirements.programmatic === true && !profile.tools.programmatic)
|
|
11
|
+
throw new Error("capability-programmatic-tools-required");
|
|
12
|
+
}
|
|
13
|
+
export function assertTransition(from, to) {
|
|
14
|
+
const allowed = {
|
|
15
|
+
draft: ["active", "cancelled"], active: ["blocked", "awaiting_user", "completed", "cancelled"],
|
|
16
|
+
blocked: ["active", "cancelled"], awaiting_user: ["active", "cancelled"],
|
|
17
|
+
completed: ["archived"], archived: [], cancelled: [],
|
|
18
|
+
};
|
|
19
|
+
if (!allowed[from].includes(to))
|
|
20
|
+
throw new Error(`invalid-change-transition:${from}->${to}`);
|
|
21
|
+
}
|
|
22
|
+
export function riskRequiresApproval(risk) {
|
|
23
|
+
return risk === "local-destructive" || risk === "external-mutation" || risk === "production-critical";
|
|
24
|
+
}
|
|
25
|
+
export function assertToolEffect(effect, risk) {
|
|
26
|
+
if (effect !== risk)
|
|
27
|
+
throw new Error(`tool-effect-risk-mismatch:${effect}->${risk}`);
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=kernel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kernel.js","sourceRoot":"","sources":["../../src/kernel.ts"],"names":[],"mappings":"AA8DA,MAAM,UAAU,gBAAgB,CAAC,OAA0B,EAAE,YAA+H;IAC1L,IAAI,YAAY,CAAC,cAAc,KAAK,SAAS,IAAI,OAAO,CAAC,KAAK,CAAC,cAAc,GAAG,YAAY,CAAC,cAAc;QAAE,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;IACvK,IAAI,YAAY,CAAC,OAAO,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IAChH,IAAI,YAAY,CAAC,OAAO,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IAChH,IAAI,YAAY,CAAC,QAAQ,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACrH,IAAI,YAAY,CAAC,YAAY,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY;QAAE,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;AACnI,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,IAAqB,EAAE,EAAmB;IACzE,MAAM,OAAO,GAA+C;QAC1D,KAAK,EAAE,CAAC,QAAQ,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC,SAAS,EAAE,eAAe,EAAE,WAAW,EAAE,WAAW,CAAC;QAC9F,OAAO,EAAE,CAAC,QAAQ,EAAE,WAAW,CAAC,EAAE,aAAa,EAAE,CAAC,QAAQ,EAAE,WAAW,CAAC;QACxE,SAAS,EAAE,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE;KACrD,CAAC;IACF,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,IAAI,KAAK,EAAE,EAAE,CAAC,CAAC;AAC/F,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,IAAe;IAClD,OAAO,IAAI,KAAK,mBAAmB,IAAI,IAAI,KAAK,mBAAmB,IAAI,IAAI,KAAK,qBAAqB,CAAC;AACxG,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,MAAkB,EAAE,IAAe;IAClE,IAAI,MAAM,KAAK,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,MAAM,KAAK,IAAI,EAAE,CAAC,CAAC;AACvF,CAAC"}
|