@mmerterden/multi-agent-pipeline 20.8.3 → 20.9.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/CHANGELOG.md +37 -0
- package/docs/facts.json +1 -1
- package/install/claude.mjs +1 -1
- package/manifest.json +37 -28
- package/package.json +1 -1
- package/pipeline/lib/claude-md-links.mjs +328 -0
- package/pipeline/lib/owned-path-gate.mjs +699 -0
- package/pipeline/lib/repo-profile-derive.mjs +1771 -0
- package/pipeline/lib/repo-profile.mjs +780 -0
- package/pipeline/lib/stack-detect.sh +59 -19
- package/pipeline/lib/unattended.mjs +17 -0
- package/pipeline/multi-agent-refs/features/repo-profile.md +96 -0
- package/pipeline/multi-agent-refs/features/review-decision.md +18 -13
- package/pipeline/multi-agent-refs/features/stack-skill-routing.md +179 -33
- package/pipeline/multi-agent-refs/outside-the-pipeline.md +33 -11
- package/pipeline/multi-agent-refs/phases/phase-1-plan.md +26 -12
- package/pipeline/multi-agent-refs/phases/phase-2-dev.md +24 -13
- package/pipeline/multi-agent-refs/phases/phase-3-review.md +16 -4
- package/pipeline/multi-agent-refs/phases/phase-4-commit.md +1 -1
- package/pipeline/multi-agent-refs/phases/phase-5-report.md +8 -0
- package/pipeline/rules/outside-the-pipeline.md +6 -1
- package/pipeline/schemas/agent-state.schema.json +66 -2
- package/pipeline/schemas/phases.json +4 -4
- package/pipeline/schemas/repo-profile.schema.json +1107 -0
- package/pipeline/schemas/token-budget.json +4 -4
- package/pipeline/scripts/agent-guard.py +30 -0
- package/pipeline/scripts/owned-path-gate.mjs +205 -0
- package/pipeline/scripts/pre-commit-check.sh +151 -1
- package/pipeline/scripts/repo-profile.mjs +244 -0
- package/pipeline/scripts/review-decision-gate.mjs +42 -18
- package/pipeline/scripts/skill-candidates.mjs +882 -0
- package/pipeline/scripts/unattended_policy.py +90 -0
- package/pipeline/scripts/usage-report.mjs +36 -6
- package/pipeline/skills/.skill-manifest.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -16,6 +16,43 @@ Internal file-layout changes that don't affect the slash-command surface are sti
|
|
|
16
16
|
|
|
17
17
|
## [Unreleased]
|
|
18
18
|
|
|
19
|
+
## [20.9.0] - 2026-09-27
|
|
20
|
+
|
|
21
|
+
### Changed
|
|
22
|
+
|
|
23
|
+
- Token ceilings: `phase-1-plan` 10000 to 10250, `phase-4-commit` 6500 to 6600, `phase-5-report` 5550 to 5700, total 63300 to 63550. Phase 1 now reads the repo profile and the documents CLAUDE.md links to, Phase 4 takes the commit format from the profile, and the Phase 5 report carries the repo-profile and skill-routing sections; the same pass removed narrated history from phase-1-plan.
|
|
24
|
+
|
|
25
|
+
### Fixed
|
|
26
|
+
|
|
27
|
+
- Two toolkits that ship a skill of the same name at the same role and scope resolve to the toolkit the pipeline itself publishes, so an outside toolkit never wins by how its name sorts.
|
|
28
|
+
- `review-decision-gate.mjs --integrity <file>` treats a declared file that does not exist as unreadable (exit 3, recorded in the ledger), never as no findings, and keeps a blocker on a gate's basis only when the tag or fingerprint also matches.
|
|
29
|
+
- The usage report sends a plugin name only for toolkits the pipeline publishes; any other enabled plugin is sent as the constant `private`.
|
|
30
|
+
- Phase 2 stack skill routing no longer routes a repo to another stack's toolkit. `pipeline/scripts/skill-candidates.mjs resolve` reads the effective `enabledPlugins` (user settings, then the repo's `.claude/settings.json` and `.claude/settings.local.json`) and drops a toolkit inherited from user settings whose name or `plugin.json` marks only stacks the repo is not built with, as detected by `lib/stack-detect.sh` and `schemas/stack-adapters.json`. Each exclusion carries its reason. A toolkit the repo enabled itself is never dropped, multi-stack repos keep every matching toolkit, inconclusive detection applies no filter, and `ai-common-toolkit` and `ai-analyst-toolkit` always stay. A detected stack without an enabled toolkit gets a hint (`enable ai-<stack>-toolkit with /multi-agent:stack`) instead of a substitute. The stack words come from the adapter table and the existing aliases, so a new `ai-<x>-toolkit` whose `<x>` is an adapter id is filtered with no code change. The user-level `settings.local.json` (under `CLAUDE_CONFIG_DIR` or `~/.claude`) is read as a second inherited layer. The mode comes from `lib/unattended.mjs`, the helper the gates use.
|
|
31
|
+
- `lib/stack-detect.sh` ignores a marker below the repo root when that stack's language is under 1% of the tracked source files (`git ls-files`, from 50 source files up; `Package.swift` manifests are not counted as source). A subtree copied into a Kotlin app with its own `Package.swift` no longer makes the app an iOS repo, and `why` names the ignored marker. Root markers always count; outside a git work tree nothing changes.
|
|
32
|
+
- An inherited toolkit whose name and `plugin.json` mark no stack is no longer kept in every repo. It is kept in the common role when it ships an `index`, and otherwise listed in `unscoped[]` and not routed to (unattended runs never load it; attended runs only when the user names it). A repo-enabled one is kept as before.
|
|
33
|
+
- Skill routing is Phase 2 throughout: `repoSkillCall()` and `marketplaceSkillCall()` default to `phase: 2`, and `features/stack-skill-routing.md` and its JSON examples say Phase 2. The Phase 2 step runs for every task, so the unattended marketplace fallback also runs when no toolkit is enabled.
|
|
34
|
+
- `usage-report.mjs` no longer sends repo-local skill names: `source: "repo"` calls are sent as `repo-local`, and a `marketplace-fallback` call keeps its name only for a toolkit the public marketplace carries (`marketplace-fallback` otherwise).
|
|
35
|
+
|
|
36
|
+
### Added
|
|
37
|
+
|
|
38
|
+
- Repo-local skills (`<repo>/.claude/skills/<name>/SKILL.md`) are routing candidates. The resolver reads each one's name and description, marks it explicit-only from `disable-model-invocation: true`, its description, or CLAUDE.md wording such as "only on explicit request", and pre-ranks them against the task. The task text is read from `--task-file <path>` or stdin (`--task -`), and every pipeline document passes it through a file written with the Write tool instead of a shell string. A repo-local skill wins over a toolkit skill of the same name for that repo and the choice is listed in `decisions[]`. A loaded one is recorded in `state.telemetry.skillCalls[]` with `source: "repo"`; the `agent-state` schema gains the optional `source` field.
|
|
39
|
+
- Unattended and autopilot runs, which cannot run `/multi-agent:stack` or write `.claude/` in the repo, read a detected stack's missing toolkit read-only from a local marketplace clone found through the host's `known_marketplaces.json` and each clone's `marketplace.json`. Loaded skills are recorded with `source: "marketplace-fallback"`, the toolkit name and its `plugin.json` version, and the Phase 5 report carries a line telling the user to enable the stack. No settings are written; when no clone carries the toolkit the gap is recorded and the run continues. Attended runs keep the hint only. Neither mode substitutes another stack's toolkit. The outcome is stored in the new optional `state.telemetry.skillRouting`.
|
|
40
|
+
- Phase 1 reads the in-repo documents that `CLAUDE.md` and `.claude/CLAUDE.md` link to as project rules. `pipeline/lib/claude-md-links.mjs` follows relative markdown links, document paths written as inline code and `@path` imports one hop, at most 10 files and 200 KB in total. References on a line that calls the target authoritative ("See X for", "source of truth") are read first; the file that crosses the byte budget is cut at a character boundary and listed in `truncated[]`. A leading `/` resolves against the repo root when its first segment exists there. It skips `SKILL.md` files and rejects URLs, absolute filesystem and `~/` paths, directories, binary files and any path that resolves outside the repo, including through a symlink and including a symlinked `CLAUDE.md`.
|
|
41
|
+
- `features/stack-skill-routing.md` states the precedence: repo-local skill, then detected-stack toolkit skill, then common toolkit. An enabled differently-named toolkit is a candidate only when it matches the repo's stack, is never required, and is recorded with its name and version. When two kept toolkits ship a skill of the same name, the resolver picks one owner per name (repo-local skill, then stack role over common role, then the narrowest enabling scope, then toolkit name) and records each choice in `overlaps[]` and `decisions[]`.
|
|
42
|
+
- Per-repo project profile. `pipeline/scripts/repo-profile.mjs` derives how a repo works from the repo itself and stores it at `~/.claude/projects/<slug>/repo-profile.json` (mode 0600, never inside the repo; worktrees share their main checkout's profile). It records paths a bot account owns (from commit history and from the `case` patterns and `git diff -- <paths>` pathspecs of workflows that name the bot, with a label bypass; an `on.*.paths` trigger filter is never ownership), generated trees with their input, regeneration command and same-commit rule (from case-insensitive header stamps and `Generated/` directories), the commit subject convention (ticket prefix or suffix, its style, required scope), the work and default branches, exact build, test and lint commands from CI, localization, testing-id and token accessor roots, DI registrar conventions, module layout, mocks, git hooks and whether they amend or rewrite a commit, required checks, the docs `CLAUDE.md` links to, and in-repo skills. Every field carries its source (`derived`, `confirmed`, `manual`), `file:line` or commit evidence, and a confidence. Schema: `schemas/repo-profile.schema.json`.
|
|
43
|
+
- `repo-profile.mjs ensure` runs at Phase 1. A missing profile is derived and saved; a stale one (head no longer an ancestor, more than 200 commits behind, or a workflow file changed) is re-derived keeping confirmed and manual fields. Attended runs ask once to confirm; unattended and autopilot runs never ask. `resolve <field>` applies the confidence policy: confirmed, manual and high are used, medium only for owned paths, generators and the commit format, low is ignored and recorded, and owned paths and generators are always honoured in unattended runs. Phase 2 checks targets against owned paths and generators, Phase 4 places the ticket from the commit format and re-reads the SHA after a rewriting hook, and the Phase 5 report lists derived, confirmed and ignored fields. `state.repoProfile` records the outcome.
|
|
44
|
+
- Owned-path gate. `pipeline/scripts/owned-path-gate.mjs` checks a change set against the repo profile's `ownedPaths[]` under the profile's confidence and mode policy and reports every changed path an honoured entry covers and its `except[]` globs do not. A change is exempt when all its authors match the entry's owner or `bypass.author`, or when the PR carries `bypass.label` (from `--pr-labels`, or read read-only through `gh` when it is installed; a missing `gh` never fails the gate). Change sets: the default diff from the work branch merge-base plus uncommitted and untracked files, `--base <ref>`, `--range <base>..<head>`, `--staged`, or `--paths`. Each violation names the path, glob, owner, evidence, confidence and a fix pointing at the generator input, the authoring command or the next sync. Exit 0 clean or skipped, 1 violations, 2 usage or environment error. Attended runs without a profile skip with a note; unattended runs derive one first, outside the repo. The glob matcher (`**` any depth, `*` one segment, classes, plain directories covering their subtree) has no dependency.
|
|
45
|
+
- The owned-path gate is Gate 0 of the Phase 2 exit gate, run before the build; a violation blocks the phase with its fix text. Phase 3 re-runs it at Step 1.761 and merges its reviewer-shaped findings (`tag: owned_path`, `blocking`) into triage, and `review-decision-gate.mjs` keeps them blocking on the new `owned-path` basis. `--integrity` now repeats, one file per deterministic gate.
|
|
46
|
+
- `pre-commit-check.sh` runs the owned-path gate when the agent commits and blocks with exit 2 on a violation. It judges the commit's own paths: the index, plus what the same command stages (`git add <pathspec>`, `-A`, `-u`) and what `commit -a` or `commit <pathspec>` takes, read by the new `agent-guard.py --commit-scope`; a dirty file the commit leaves out is not judged. It passes `--state auto`, which finds the live run whose `worktreePath` is the checkout. It reads the profile from `~/.claude` or the unattended run root and the globs' literal prefixes without node (`./`, `/` and `//` normalized as the gate does), so a commit touching no owned prefix costs no extra process, and it finds the profile of a repo whose path is not ASCII.
|
|
47
|
+
- Owned-path gate behaviour. A profile that honours no owned entry skips before any git call. Without `--base` the base is looked up from the profile's work and default branch, `origin/HEAD`, `origin/main`, `origin/master`, `main` and `master`; when none resolves, an attended run exits 0 with a note and a run that asks nothing scans the index and working tree, and a shallow clone with no merge-base is named as such. A `--range` or `--base` that git cannot resolve is one readable line. A default change set above 5000 paths is exit 2 (`base looks wrong: N changed paths`); stderr lists the first 50 violations and a count of the rest. `--repo` pointing at a subdirectory sees untracked files anywhere in the repo. When several owned entries cover a path, one entry's `except` releases the path only from that entry. A merge commit counts as changing only the files its author edited while resolving it. `--out` removes the previous file first, so an error never leaves a stale result, and `--help` prints the usage.
|
|
48
|
+
- Globs: a glob ending in `/` covers that directory's subtree, the matcher is linear in the name's length, `a**b` stays inside one segment, and `[]]` is a class holding `]`. `owner` and `bypass.author` are regular expressions when anchored (`^` or `$`) and otherwise one exact name, so `name[bot]` matches itself and `bot` does not match `robot evil`; an unanchored value with regex syntax fails validation.
|
|
49
|
+
- `repo-profile.mjs ensure` saves under the unattended run root (`<root>/repo-profiles/<slug>/`) when an unattended sandbox denies writes under `~/.claude`, and uses the profile from memory with `persisted: false` when nothing is writable. Its output carries `mode`, `policy`, `gatesActive`, `persisted`, `writeError` and `confirmed`.
|
|
50
|
+
- Derivation of owned paths: history candidates are checked against their whole history and narrow to the files and subdirectories only the bot touched; a history-only rule (`basis: "history"`) is at most `medium` and an attended run honours it only once confirmed. Workflow rules come from `case` arms and `git diff -- <paths>` pathspecs, stored repo-relative; an `on.*.paths` trigger filter is never ownership. A case `*` crosses `/`: a star-only segment becomes `**`, a last segment such as `*.swift` becomes `**/*.swift`, and any other star inside a segment widens an owned arm to its literal directory plus `/**` and drops an exception arm. A workflow rule for the same owner replaces a broader history directory it only partly covers. A bot login in a YAML or shell comment is an example, not an owner: the owner is the bot that committed under the job's paths, else the one it names in code.
|
|
51
|
+
- Derivation of the rest: `repo.workBranch` reads `push: branches:` when no pull request names a target, and local branches count in the activity fallback; a build, test or lint step that a pull request runs is `high` confidence. Generator commands drop `2>&1` and `| tee` plumbing, a `--check`, `--verify` or `--dry-run` step is the `check` field, `input` is the common parent of the co-changing directories, and a stamp must be a comment line in the first 5 lines. `mock.system` and `di.injectAttribute` come only from the repo's dominant language with `file:line` evidence, the DI registrar suffix is read from the repo's own file names, and `docs.authoritative` comes from `claude-md-links.mjs`. Non-ASCII paths stay intact, and tracked symlinks and anything that is not a regular file are skipped.
|
|
52
|
+
- The repo profile's mode follows `lib/unattended.mjs` (new `runPosture()`): terminal autopilot is attended with the gates active, so its profile stays under `~/.claude` and it is never asked to confirm. Because nothing is confirmed in it, it applies the unattended confidence policy (new `policyMode()`), in `resolve`, `report`, the owned-path gate and the commit hook.
|
|
53
|
+
- `save --from` replaces the stored profile as given: a manual value wins over a confirmed one and an entry removed in the edit is removed. The runtime validator applies `repo-profile.schema.json`. `--max-behind` is validated like `--history`, and `--help` prints the usage.
|
|
54
|
+
- An explicit-only repo skill is matched only when the task invokes it as `/name`, `` `name` `` or "skill name". A repo `SKILL.md` or skill directory that is a symlink out of the repo is rejected (`rejectedRepoSkills[]`), and a marketplace plugin directory, `skills/` or `index` that resolves outside its clone is treated as absent.
|
|
55
|
+
|
|
19
56
|
## [20.8.3] - 2026-09-27
|
|
20
57
|
|
|
21
58
|
### Fixed
|
package/docs/facts.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$comment": "Generated by pipeline/scripts/gen-facts.mjs. Do not hand-edit: the site reads this, and a number edited here instead of at its source is the drift this file removes.",
|
|
3
3
|
"generatedAt": "2026-09-27",
|
|
4
|
-
"version": "20.
|
|
4
|
+
"version": "20.9.0",
|
|
5
5
|
"phaseSchema": 2,
|
|
6
6
|
"phases": [
|
|
7
7
|
{
|
package/install/claude.mjs
CHANGED
|
@@ -675,7 +675,7 @@ function migratePreManifestExternalSkills(dest, externalSrc, opts) {
|
|
|
675
675
|
}
|
|
676
676
|
if (identical > 0) {
|
|
677
677
|
console.log(
|
|
678
|
-
` -> migration: pruned ${identical} pre-manifest catalog entr(ies)
|
|
678
|
+
` -> migration: pruned ${identical} pre-manifest catalog entr(ies) matching a shipped catalog version (now plugin-only)`,
|
|
679
679
|
);
|
|
680
680
|
}
|
|
681
681
|
if (flagged > 0) {
|
package/manifest.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mmerterden/multi-agent-pipeline",
|
|
3
|
-
"version": "20.
|
|
4
|
-
"commit": "
|
|
5
|
-
"generatedAt": "2026-09-
|
|
3
|
+
"version": "20.9.0",
|
|
4
|
+
"commit": "6376813f716c832343373818aec8ff9353e1c2af",
|
|
5
|
+
"generatedAt": "2026-09-27T13:51:52.309Z",
|
|
6
6
|
"algorithm": "sha256",
|
|
7
|
-
"fileCount":
|
|
7
|
+
"fileCount": 1227,
|
|
8
8
|
"files": {
|
|
9
|
-
"CHANGELOG.md": "
|
|
9
|
+
"CHANGELOG.md": "c20ea4d71f35454a3caff76fe8878f22b260c3ed8768c1c21f42603a6ea23d1d",
|
|
10
10
|
"LICENSE": "8d8c51aaf1e1538b180c69965fa038db71be86798cc3e26a143bebfefe16a43e",
|
|
11
11
|
"README.md": "0613eebb0b38062bd94c44043595d1950b5c9b470874dd8e402c052fd20960cf",
|
|
12
12
|
"README.tr.md": "0c6b5e6943d6c3d3bf3a7ed99c705fb9a78d15d7722e6252f58404d3f6d3524d",
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
"docs/best-practices.md": "f8b75b0d38b5896a6a852bb30a1edddeb24dab8b5b7b1d9313290e1241c72024",
|
|
34
34
|
"docs/ecosystem.md": "e6c00f30e95b5e178f77bdfbefd686c8a4164f39c03865a89ab23465d1a37acf",
|
|
35
35
|
"docs/engineering.md": "550528cd47c7d2c921729c68d0782a00ac8e77a4bdfec479f6749f9c3235d188",
|
|
36
|
-
"docs/facts.json": "
|
|
36
|
+
"docs/facts.json": "519125337473d715b0fd0467944aeefea2cc8e037e86cb1daf752b07f42f0485",
|
|
37
37
|
"docs/features.md": "6c9f0efb00c683e6f611c440c87847b187f8b0eee59e9e812f3a241695bc2ae1",
|
|
38
38
|
"docs/performance.md": "bbf2f3922c25dcba0c1a9e69ef420e3871a729af5b35009a49b48a5d3c5cd151",
|
|
39
39
|
"docs/recovery-guide.md": "59a8f1b66b34cb9ff5507b3d54dac3b9915e184aa044d9c758d18cac818d510e",
|
|
@@ -52,7 +52,7 @@
|
|
|
52
52
|
"install/_telemetry.mjs": "5433d753f909beed2c8789272bba05e245482c472f83d3444f58000c4c9a634b",
|
|
53
53
|
"install/_unattended-profile.mjs": "e1ed82bde35d19105ee12c2a551eb778912b0e5c93ab227fd15c993098d98de0",
|
|
54
54
|
"install/catalog-history.json": "fd545686999f2231b902eb2a614614b8e0b0b2812a94b236fdfa96cd01d31f5b",
|
|
55
|
-
"install/claude.mjs": "
|
|
55
|
+
"install/claude.mjs": "c7b0a6eff15e967778e6ab8c463949c79dade05309878b03836f023da704fb3a",
|
|
56
56
|
"install/codex.mjs": "2c2238cd9dd2f95b4a50a505387e8e49ddc1513ae13998f05f1ed3e3a71b18e7",
|
|
57
57
|
"install/copilot.mjs": "300a74f17084d1a38f16428ca7477394c29e33cd755156e19b92e457999be234",
|
|
58
58
|
"install/index.mjs": "07ec26ecdd81cc983f146faf4b7095c98edce39c89a6fd83c24ce43229d2d9e7",
|
|
@@ -62,7 +62,7 @@
|
|
|
62
62
|
"install/templates/multi-agent-autopilot-awake.plist.template": "ddd25c76c56fcbb38a89de8e35637372d70ace993d6bc487a88ca9cfb702fe1f",
|
|
63
63
|
"install/templates/multi-agent-autopilot.plist.template": "122c8a61cd927edd99375d6e3da40f1d42bcceed5b6641785c8b28bb930bc77e",
|
|
64
64
|
"install/unattended-profile-legacy.json": "f52e86b998956f09ad306b1735a6c10b58580d7082d8a55665a4c6bb15c3aa1f",
|
|
65
|
-
"package.json": "
|
|
65
|
+
"package.json": "d11daaab9b0284f5068975a79484016c0c1ef93783255c0fbc29aea8d4e36abb",
|
|
66
66
|
"pipeline/agents/android-architect.md": "11fb74543cb0ebcf9525ca6654fe95d53da7229e0bf4a1149b31fd9005abc453",
|
|
67
67
|
"pipeline/agents/backend-architect.md": "b02a606c301e4714131aed70ae6d16eeb77fbc819a001e2752cff2488d4246de",
|
|
68
68
|
"pipeline/agents/bulk-reader.md": "6597052cd7d205bac2b1c7633f5232fe1a40730664a913b8eb77efd5a786dc25",
|
|
@@ -168,6 +168,7 @@
|
|
|
168
168
|
"pipeline/lib/autopilot-state.sh": "e97d4cb4fce18be8be3485702be0e6d0948209a14f9725cbc83c2721d293432a",
|
|
169
169
|
"pipeline/lib/channels-multi-repo.sh": "aef26f888bddbaf7fb0e2e86143d612da776b4a4282bcee8144a090a9050b989",
|
|
170
170
|
"pipeline/lib/classify-intent.sh": "dab0896bc9707a10ac046d0b31d25a48c363cdde76cb1d720bf847deefc0364c",
|
|
171
|
+
"pipeline/lib/claude-md-links.mjs": "d0fddb740c466c8f31cd28294524094dbae8c6b726038791e11a0605c5cb1c67",
|
|
171
172
|
"pipeline/lib/confusables.json": "64a31eba5d1f44c6177abf6d9dfddee671201336f76c0db71e96a0d49cb4fdaa",
|
|
172
173
|
"pipeline/lib/context-link-extractor.sh": "84a154dcabf57136be17199b21d02120d70cc0ca34e8f48fe24bdda74eddda1d",
|
|
173
174
|
"pipeline/lib/count-lib.sh": "7bafe152b0ffb9ca6fb9296b7ecaaef33deb9410286b3579fefbb37796044f79",
|
|
@@ -196,6 +197,7 @@
|
|
|
196
197
|
"pipeline/lib/multi-repo-pipeline.sh": "5cca6bcc4fb857448ddadb31add343952be89423a328267e56496c7b7cdc7710",
|
|
197
198
|
"pipeline/lib/normalize-text.mjs": "c2eeed65ab85cdc27a12ecaadc45dfa00b49a7611250c9ad881b9e93882a51c1",
|
|
198
199
|
"pipeline/lib/outbound-gate.mjs": "1ebc840e975f19b0da4699b3a37361ecc8a2be1a7a558d2b2fb39b8b64244011",
|
|
200
|
+
"pipeline/lib/owned-path-gate.mjs": "28e75cf021ee43bf8c6369f72d27f426c79e8f4a4ab5ef99a009ac6399669319",
|
|
199
201
|
"pipeline/lib/parse-complaints.sh": "d787ce870f141cf7f881da80fab4320814044554065e82e94632f061675b4d12",
|
|
200
202
|
"pipeline/lib/phase-schema.mjs": "8fc0c909f129341295cd8ef2ea9e93cecd0ac493c3a8d83e25879f7ff522f1ab",
|
|
201
203
|
"pipeline/lib/plan-todos.sh": "4992bed180774a27f84892add8b09e0f7b53e9b8fefb75f60325a04d1af18c56",
|
|
@@ -205,16 +207,18 @@
|
|
|
205
207
|
"pipeline/lib/regular-file.mjs": "084dd2c98a664a1e4a937757cc5e5e5d7e162b6aa422f8c7cfdb27f7834c6cbc",
|
|
206
208
|
"pipeline/lib/repo-cache.sh": "82bbdd3d61746042ad5341554a1077098d4b56f15caf6c5cc092377a273c8f45",
|
|
207
209
|
"pipeline/lib/repo-hygiene.sh": "67f4227d2bc84198d51205f1f16d055e76a07fe11a4e5c2b8103559c44cefa04",
|
|
210
|
+
"pipeline/lib/repo-profile-derive.mjs": "25f22468d6032e0be9b9e7e8f3266cb3b1029654f94706a546593524e4da0e8e",
|
|
211
|
+
"pipeline/lib/repo-profile.mjs": "4da219c9f72f3d74cfe42d9ff8685d4f53a8426c347cef85f0c2a737ac275133",
|
|
208
212
|
"pipeline/lib/require-jq.sh": "a137b4df202515c2b89d5b93c3e28b04c73c8bc2f7c42be9ca9a22926e042918",
|
|
209
213
|
"pipeline/lib/review-watch.sh": "89a53f79aab902a39ab8301cabe6eb54c8dc854af4d97c024c6b3b1f3ab38a75",
|
|
210
214
|
"pipeline/lib/route-state.sh": "8d7555a79be96d824b533382214431436bb95f6d3d21c4f811800f4ab4963f86",
|
|
211
215
|
"pipeline/lib/run-paths.sh": "2063a1d2f07d6caa391089c1e581fd870a4e9c3caa3b0c25a03f0b4fe4f6d070",
|
|
212
216
|
"pipeline/lib/shadow-git.sh": "8a36d3942153c27c34762369f7c2716aadca489851e630d4a2a3f324af1e0b93",
|
|
213
|
-
"pipeline/lib/stack-detect.sh": "
|
|
217
|
+
"pipeline/lib/stack-detect.sh": "53242b46482547f861625b9cbf44b65790849bce7e42be3bbd56abac67bc3489",
|
|
214
218
|
"pipeline/lib/submodule-detector.sh": "e2c1a762876c5ae4756818e91f0f0fdd5897cac60decb979651124086e9cab97",
|
|
215
219
|
"pipeline/lib/unattended-profile-check.mjs": "80a9005a43ed66d7fded8335e73a22c24483854ea532a6d503480512386d0c6d",
|
|
216
220
|
"pipeline/lib/unattended-settings-location.mjs": "6ea68ecba4cdd28ed744beec0e6f2d140b423b6ad436d7903455e781e0cc01b5",
|
|
217
|
-
"pipeline/lib/unattended.mjs": "
|
|
221
|
+
"pipeline/lib/unattended.mjs": "391231047478c60765a9ce05ed7134bad14f6caf79a91930c24276eb15dcd8bf",
|
|
218
222
|
"pipeline/lib/unattended.sh": "6160d784bb36b9eaa71fcd097d5b34c093534ced02442bdf16778d66a794dac2",
|
|
219
223
|
"pipeline/lib/untrusted.mjs": "391f7093658386cac2ae2aabb21767cfc661e8bb04c7572aa2dc15b114bdc078",
|
|
220
224
|
"pipeline/lib/usage-endpoint.mjs": "9aed3a854e729f82563ca7614c9ab8dbb5af3b42fa0f7c10204b0094627b9906",
|
|
@@ -270,8 +274,9 @@
|
|
|
270
274
|
"pipeline/multi-agent-refs/features/plan-todos.md": "8780d80b4541daee2b05080759a0694ef7e6270abe9a4621deb92ec7bac94e8e",
|
|
271
275
|
"pipeline/multi-agent-refs/features/prior-fix-detection.md": "9bd172fa116b0c334576ee3df2dc478810a7e282422410e045be74ac2299253d",
|
|
272
276
|
"pipeline/multi-agent-refs/features/repo-map.md": "9102f95d5c819c3bce3dc992cc98c67657e83f1fbc77d2e9b3d16b040bfab9f6",
|
|
277
|
+
"pipeline/multi-agent-refs/features/repo-profile.md": "6f9a33c28c37cb9ab8298c282617bbce165481b89cc40683dba884a42bf227b3",
|
|
273
278
|
"pipeline/multi-agent-refs/features/research.md": "776c9f3b644f8ff355108000b4a7381ff173e38811e8e2a73ef66e756d60c169",
|
|
274
|
-
"pipeline/multi-agent-refs/features/review-decision.md": "
|
|
279
|
+
"pipeline/multi-agent-refs/features/review-decision.md": "ac7bf33ec86c311680d9ae8a4d1d0d0b564d0bf0cfe80e270cc98d3abceb65cb",
|
|
275
280
|
"pipeline/multi-agent-refs/features/review-delta.md": "740cbefbd705a013b708921f2265f12d54d96823f1c46b5c1e644ebbdf7a8f85",
|
|
276
281
|
"pipeline/multi-agent-refs/features/review-file-set.md": "a751888bce82a8e6970c9abe7f354c5c0704956e5278aeb091b893be0df5c1ef",
|
|
277
282
|
"pipeline/multi-agent-refs/features/review-multi-repo.md": "f06857b2fa984ee6ca8cdf4360485947b55217056e5e439839c56871f9eb7595",
|
|
@@ -281,7 +286,7 @@
|
|
|
281
286
|
"pipeline/multi-agent-refs/features/shadow-git.md": "d020c7b99a993eb11398d08e0518207b990b3ec3807fbcf0926c6cb304777ce9",
|
|
282
287
|
"pipeline/multi-agent-refs/features/skill-conformance.md": "6391c81b2467ca05445c55b70d21f74704c4c62be7d04189196244fa54ef893f",
|
|
283
288
|
"pipeline/multi-agent-refs/features/stack-adapters.md": "71e23385da872ceed35263f4838f154800aa2da55bb6688ccca74726b70a3ef5",
|
|
284
|
-
"pipeline/multi-agent-refs/features/stack-skill-routing.md": "
|
|
289
|
+
"pipeline/multi-agent-refs/features/stack-skill-routing.md": "1989f7f64be6c5ee0a42d8e9962aead7cd7472d795915ab953d89d9382f317e6",
|
|
285
290
|
"pipeline/multi-agent-refs/features/unattended-gates.md": "46b516cac81a4eacf5d58bc3b1613e2266c26f1559be8dac060d1dc6b7d7ca01",
|
|
286
291
|
"pipeline/multi-agent-refs/features/unattended-security.md": "eeb8656845ac78ab612b2e3352b241a6ba2d8b8f6d4a6d5c2e7cab1f6592a4d6",
|
|
287
292
|
"pipeline/multi-agent-refs/features/url-enrichment.md": "72e01a799d9fa54b56c762ba404a9f9236adbbf98320e395a96f6b0f5917e76b",
|
|
@@ -295,18 +300,18 @@
|
|
|
295
300
|
"pipeline/multi-agent-refs/keychain.md": "8f775488ed846cc11470bfe5a4db1803f4145a16e12e8fa17a3f338380f096a7",
|
|
296
301
|
"pipeline/multi-agent-refs/knowledge.md": "33f6a4cc0ced930d192f32e0f7b2adf785395562f9dedd82ce939306c3d7a0e5",
|
|
297
302
|
"pipeline/multi-agent-refs/multi-repo-integration-build.md": "ff4ad08d382d1d31f5c4f3c382cb340058bbe5cb1cffbfef520500cad7b9c05c",
|
|
298
|
-
"pipeline/multi-agent-refs/outside-the-pipeline.md": "
|
|
303
|
+
"pipeline/multi-agent-refs/outside-the-pipeline.md": "34f9f79b8fcc0ac58dc45905ca8b285477f7604d10391ace1bbde0b249593fbf",
|
|
299
304
|
"pipeline/multi-agent-refs/payload-contracts.md": "77b10f1d616c20b96c8f83185f9b507c9764fdc69eae1795bff9127ecbc6f37e",
|
|
300
305
|
"pipeline/multi-agent-refs/phases.md": "730d598b27b8df4776adece9487f51e4835dbdb5a7d33c097e272f3360cbe844",
|
|
301
306
|
"pipeline/multi-agent-refs/phases/log-format.md": "62d51e57cca8445ab40f3c0dc29615e4b5c8e4743286bf9ef0173610e81397aa",
|
|
302
307
|
"pipeline/multi-agent-refs/phases/modes.md": "0733e20dce458c09f30343db9149fc93bc5a4c9531670b93952f223811dcb1aa",
|
|
303
308
|
"pipeline/multi-agent-refs/phases/operations.md": "9506a26684abfff1e332d92c2321e840544fd4f049aff9f118731e198dabca94",
|
|
304
309
|
"pipeline/multi-agent-refs/phases/phase-0-init.md": "3ec8a7f979818413c82418325e20ff8144a2505bfcdac61e3b8bfb2d8bcf0db8",
|
|
305
|
-
"pipeline/multi-agent-refs/phases/phase-1-plan.md": "
|
|
306
|
-
"pipeline/multi-agent-refs/phases/phase-2-dev.md": "
|
|
307
|
-
"pipeline/multi-agent-refs/phases/phase-3-review.md": "
|
|
308
|
-
"pipeline/multi-agent-refs/phases/phase-4-commit.md": "
|
|
309
|
-
"pipeline/multi-agent-refs/phases/phase-5-report.md": "
|
|
310
|
+
"pipeline/multi-agent-refs/phases/phase-1-plan.md": "7082a85be2386f10306c6b77fa012505599c39b851af26efb62bd268817be8f2",
|
|
311
|
+
"pipeline/multi-agent-refs/phases/phase-2-dev.md": "724acaba9cd47503adba3ac251c8341cf7fa2137edd6c084be62d4a69c0fcff0",
|
|
312
|
+
"pipeline/multi-agent-refs/phases/phase-3-review.md": "0f620c29ed3f1b6c968718d1c3500abab4e7b8c1c1e3c84c3bbf9087ce43703c",
|
|
313
|
+
"pipeline/multi-agent-refs/phases/phase-4-commit.md": "53df1abe25875881294f1f1a0fcc093eb53f9ab463927a55e1c3964efd7ce733",
|
|
314
|
+
"pipeline/multi-agent-refs/phases/phase-5-report.md": "3d333dc4b072c98eda3f287f884e12de62cda7255b12de7725a72903cefa6016",
|
|
310
315
|
"pipeline/multi-agent-refs/picker-contract.md": "6e4f77954aec80077da0df0b055894b125bad74bd1a2cd0b2e2adb1072f75637",
|
|
311
316
|
"pipeline/multi-agent-refs/platform-parity.md": "43a3836efc359c6b7d30af38d66408d8d18661e72e5165b25bb8e15953e6feaf",
|
|
312
317
|
"pipeline/multi-agent-refs/progress-contract.md": "d1dc3c117aeb880cd44b3439062e9fe7d5e2042ba00c49fd495f70a6bdc1addc",
|
|
@@ -334,13 +339,13 @@
|
|
|
334
339
|
"pipeline/rules/figma-pipeline.md": "ad300703e42ebf0aa973f56ba7656911b5e78ddbb261e8192a6bd00b8603fdd2",
|
|
335
340
|
"pipeline/rules/git-conventions.md": "200408fb59e19898096aca998381974f23929760c661741dd76813de902386eb",
|
|
336
341
|
"pipeline/rules/kotlin-android.md": "2344356125cbdd49f703144f3eb573d40fd1ce2d4b5ef404d44da13c052c9236",
|
|
337
|
-
"pipeline/rules/outside-the-pipeline.md": "
|
|
342
|
+
"pipeline/rules/outside-the-pipeline.md": "f5ae881783bb288d803938665489a1135ef7d18e59cd52d85a290c1237450d4a",
|
|
338
343
|
"pipeline/rules/performance.md": "7cff04b043daebde791f6fb08144c013724f551fabe235e2ca1670ce6a714030",
|
|
339
344
|
"pipeline/rules/security.md": "54fdea269a4013b50610a129495196c79be04dc10022338491f01dc313b4b53d",
|
|
340
345
|
"pipeline/rules/swiftui-qa.md": "8c4afe9e72413e7bdab655f3d17588469e80ac34cb7ad2a690901fc5b6534818",
|
|
341
346
|
"pipeline/rules/tdd.md": "4c1b3114506aa9794c9bb1e1aee1b1bbb4a993d192342e5697cc00bc2f6ea4a2",
|
|
342
347
|
"pipeline/rules/testing.md": "695be5520b65451f0aa300a9643df2c05e607ff6ad372201ea34798dc5998bd5",
|
|
343
|
-
"pipeline/schemas/agent-state.schema.json": "
|
|
348
|
+
"pipeline/schemas/agent-state.schema.json": "a05ea59a7f59b7b07ffbe91156ffabcb9f46089ec00efeb2f671e953f7daf79a",
|
|
344
349
|
"pipeline/schemas/analysis-output.schema.json": "41826f4bf7c96778f8cdbcc68531e984087897d438b7b49ac5a93fc29db47916",
|
|
345
350
|
"pipeline/schemas/analysis-spec.schema.json": "42e4d527c69f952fb6a08bca5bcbbd14dfb75291cf028ce3c653043db70bd622",
|
|
346
351
|
"pipeline/schemas/answer-request.schema.json": "29d4211a2a05a230e0707b171b73341d2e56f6b83edb178b731905211aab4e23",
|
|
@@ -377,7 +382,7 @@
|
|
|
377
382
|
"pipeline/schemas/migrations/prefs-2.7.0-to-2.8.0.mjs": "56e3bdd076500825782726eb14f48c1f989c802bbd6374873999a949afee968f",
|
|
378
383
|
"pipeline/schemas/migrations/state-2.0.0-to-2.1.0.mjs": "b7058a8922dfa85a817616ab130d6e962a1e1b8e9ed42b8700ff82747a0f3fec",
|
|
379
384
|
"pipeline/schemas/migrations/state-2.1.0-to-2.2.0.mjs": "96c14fcc6375d630681e69c27dc0cad1783596fa93e1426d1a03d6257f1bd053",
|
|
380
|
-
"pipeline/schemas/phases.json": "
|
|
385
|
+
"pipeline/schemas/phases.json": "f290b26a6606ab3508fd214881a334534a670f90c5f68e281790585b6c131b17",
|
|
381
386
|
"pipeline/schemas/phases.schema.json": "804eff7978f7cb6ea061627e2730567df03d56bd3d05f8336c20b9787f404ad8",
|
|
382
387
|
"pipeline/schemas/phone-devices.schema.json": "4dcdd5b1fbd863e1b9528fe038ddec1af6ad88cafb020d0f69b5e12720acfec9",
|
|
383
388
|
"pipeline/schemas/phone-signed-request.schema.json": "1785de1b523c52943e24f24d3d21f3fda7e670c177872bbe51d62c100db875a8",
|
|
@@ -386,6 +391,7 @@
|
|
|
386
391
|
"pipeline/schemas/planning-output.schema.json": "bc6eda32ecd435cf84d846078f9d38347f8f741f8a427cff15913dd6c380d4b8",
|
|
387
392
|
"pipeline/schemas/pr-request.schema.json": "ae75c4856349d62834802b1189af516bb6fb3d36646831b7ff2fa61d938afcd0",
|
|
388
393
|
"pipeline/schemas/prefs.schema.json": "c327827b65c01cec5c73fdde0b4ad553daf157fb7786c4d0e97a335cfc687282",
|
|
394
|
+
"pipeline/schemas/repo-profile.schema.json": "80d530f82a246c797397ab3f6ad040811e79137a4375d84a3efe9efc885b5d5a",
|
|
389
395
|
"pipeline/schemas/research-output.schema.json": "54e3ba1b04fdc20fbaa84333b943a8ab95d1395c7b0e0aedc67929184cb49523",
|
|
390
396
|
"pipeline/schemas/review-file-exclusions.json": "2e8c44b45d21d2c82fc95aa2bf76ad3fbf2d5c68180c7b2ebf89c4a926688d77",
|
|
391
397
|
"pipeline/schemas/review-file-exclusions.schema.json": "d7310b4328ae14673f0971c9f823a697d3cafe054062a680ef0f020be1867ea3",
|
|
@@ -403,7 +409,7 @@
|
|
|
403
409
|
"pipeline/schemas/stack-adapters.json": "7bfd46a5eb589dd09fd9e935f7777d380b6803169a0fd7f74dfcee14eeed1c07",
|
|
404
410
|
"pipeline/schemas/stack-adapters.schema.json": "0d4ca61336d415fe6a2ed03af8b82fffd4d070540f7328fedc85b6625b0e5d34",
|
|
405
411
|
"pipeline/schemas/test-gap.schema.json": "175a268fca49a5e7a7388693b3dc397de45217c64fe333f7867ea6372610ad03",
|
|
406
|
-
"pipeline/schemas/token-budget.json": "
|
|
412
|
+
"pipeline/schemas/token-budget.json": "b5e84ee6590fbd74894cdc72ed63ccdd3e76eda23efff7cd9efffb8923393f5f",
|
|
407
413
|
"pipeline/schemas/token-budget.schema.json": "126292faf6a49db0929d1bcb01be888ef7de4a3938cb7d88a0cf7ee786ffb297",
|
|
408
414
|
"pipeline/schemas/triage-corpus.schema.json": "b919fe3d69443d78e55d875f54717c745320ff94d34c516b0ca32f358ebec2e5",
|
|
409
415
|
"pipeline/schemas/triage-output.schema.json": "60e329a22cea0f0ed9fa1e8e78f9b512ef283277346b08a194ad491e0bad0995",
|
|
@@ -430,7 +436,7 @@
|
|
|
430
436
|
"pipeline/scripts/_smoke-root.sh": "dad129959a4e37a0cd0f4f6c04f6d66c5a43752b2bf33989db9c002eb106b832",
|
|
431
437
|
"pipeline/scripts/_stack-adapter.mjs": "a754c042d237cd03abf11c6909099a7a3ea798cdd13d49b03787797fd3496cd7",
|
|
432
438
|
"pipeline/scripts/_stack-routing.mjs": "d64421b48eb42efffeae01f1d64ec56182269285de62e80434f3b8b05610e2ab",
|
|
433
|
-
"pipeline/scripts/agent-guard.py": "
|
|
439
|
+
"pipeline/scripts/agent-guard.py": "ba8f0c08a80d953d339ea69492efb1fbe8db5d364c2bcb2094a9839cf6dcc081",
|
|
434
440
|
"pipeline/scripts/agent-guard.sh": "5b57cea687754533c673b66a9dd2281ca06d12ef86bdc0d03fa285fc9e7debf8",
|
|
435
441
|
"pipeline/scripts/aggregate-metrics.mjs": "c324e349993fb154a885263cf6665af0ff656e9c987b455a263dad8b96cca667",
|
|
436
442
|
"pipeline/scripts/analysis-story-tree.mjs": "8fd371d3e552a3f60533f18c7699074ae6089016c6663512410c4fa02494548f",
|
|
@@ -518,6 +524,7 @@
|
|
|
518
524
|
"pipeline/scripts/offload-ref.sh": "a123f7b85de21bdf631916a8721bd07963d7b74833af1a933ec18f4130de14e0",
|
|
519
525
|
"pipeline/scripts/open-questions-gate.mjs": "8cff43cd552d01466bec540d9565c6225ce101c6716cc8f68f7edc6fc07beb4d",
|
|
520
526
|
"pipeline/scripts/output-quality-check.sh": "8cfa31afa79fecf6dfe7dc49f32c7fa92bdc6a390075821db4e1cbc330d1b23b",
|
|
527
|
+
"pipeline/scripts/owned-path-gate.mjs": "86b17e7a723d30056fac89026790e33cab891a549ffbda50b9e90d9a7675bf11",
|
|
521
528
|
"pipeline/scripts/package-manager.mjs": "211046f0e32a05a0ac977a285892a4ad87e1d1e362573b048c8accd45c706d02",
|
|
522
529
|
"pipeline/scripts/phase-banner.sh": "acca704968d6263810de5804ea50a96b7aab7472ec98a7149d92b78b380d8fa0",
|
|
523
530
|
"pipeline/scripts/phase-tracker.sh": "bb671c0f3e02a7485d9abe9d5a8b8cd3ffab636a1e2696f838964d9b848a1ed4",
|
|
@@ -527,7 +534,7 @@
|
|
|
527
534
|
"pipeline/scripts/plan-critique-gate.mjs": "b139394e5f16d11e4997d0bb0b08529f439dbd7fad39781ef4c2475247d8fa97",
|
|
528
535
|
"pipeline/scripts/plugin-refresh.sh": "687a33199ad963616ab537e32210ec8c967e76ecc42f494ee8a1dc9fe947fc30",
|
|
529
536
|
"pipeline/scripts/pr-request.mjs": "e6f4ded2366c6599bb345b3011ecc771e13b8a1561afa4c9a50bca4edff17456",
|
|
530
|
-
"pipeline/scripts/pre-commit-check.sh": "
|
|
537
|
+
"pipeline/scripts/pre-commit-check.sh": "8a2dd546e3712e6915d67729d84b89c0b98c76d48e02348d41773e4a182e7223",
|
|
531
538
|
"pipeline/scripts/pre-push-check.sh": "e449aff7f0336d7d624eff4c6221f56d8621ba9d010669601755e57fd4ee02c7",
|
|
532
539
|
"pipeline/scripts/probe-evidence-capability.sh": "ac74252eed6b773fdbc7ec475a63606925f1ba7b5e7c6f911329f46fd920eae7",
|
|
533
540
|
"pipeline/scripts/prune-logs.sh": "c5587b33104c7253e07be8cce8249b50014c52dfdf232de637811ffdd88e95e4",
|
|
@@ -537,9 +544,10 @@
|
|
|
537
544
|
"pipeline/scripts/render-cost-summary.sh": "ce9647332ab9a3e518af98f52a6fc70baab9fd3c09ec5f9e85bae2d67078a5e3",
|
|
538
545
|
"pipeline/scripts/render-work-summary.sh": "ee4db04ebc145cc2fc7fa9a533d42b7da4da191710ef67c883502ca83b2aa67c",
|
|
539
546
|
"pipeline/scripts/repo-map.mjs": "175dcaeb548e8a018ad36cf661f3bdcb9340d32439fd4d92918fd6b3ab175730",
|
|
547
|
+
"pipeline/scripts/repo-profile.mjs": "5f0cf90c59accdb0bb763fab9512e271e3cc4c8bc930ece137d94baa5c8e08d9",
|
|
540
548
|
"pipeline/scripts/require-supported-version.sh": "490d681a8c8fb510082bc6f2325965598b3aa3b4720fe5c6e08e371c7c9073f4",
|
|
541
549
|
"pipeline/scripts/research-gate.mjs": "66b0f7521fea5efa0085b9d4f31b9ce9c5c1719a7e0395ca176252c96ad974c1",
|
|
542
|
-
"pipeline/scripts/review-decision-gate.mjs": "
|
|
550
|
+
"pipeline/scripts/review-decision-gate.mjs": "b54cce49be270a1291571f63563b3a3e11e2417493bd8615c2a58bd7ff41b393",
|
|
543
551
|
"pipeline/scripts/review-delta.mjs": "14a2de7ac81e7f43a634423f920f9931bb4a27441b8ba3dc8e53ec1f6a6ed54a",
|
|
544
552
|
"pipeline/scripts/review-file-filter.mjs": "8b1fd9661b8d61b4282a4579ef360f952c827f90520b69ffde4770fdaeaaa05b",
|
|
545
553
|
"pipeline/scripts/review-scope.mjs": "60be90f1dce0a87071695bbedf17eb4e8600b1c742b97aef8cbea41802315b93",
|
|
@@ -554,6 +562,7 @@
|
|
|
554
562
|
"pipeline/scripts/scope-check-gate.mjs": "a71b736b1283b6b99fcca23ae2159e9fb134e1e65dbfec1e66d63a5cc20582f4",
|
|
555
563
|
"pipeline/scripts/search-logs.sh": "af0ce9b75edd359cc93dd678d35b15eb9bb0f14a4b044d8e4d639f8cdb82c76f",
|
|
556
564
|
"pipeline/scripts/sign-skills.sh": "779355dcf8ce383959e9a3c6093f46660a0875e83a805b7a67983acc8551cb59",
|
|
565
|
+
"pipeline/scripts/skill-candidates.mjs": "800df17b4a4ad8edc700d5d7bfac512ae861b3e20cf27a92a18c9d12729bc6ab",
|
|
557
566
|
"pipeline/scripts/skill-conformance.mjs": "73c5947ee4a6201f52653d162ba1d6e70757cbff8dd1e90317a7c4b095424b2b",
|
|
558
567
|
"pipeline/scripts/skill-siblings.mjs": "5f7cbe1e80db64bc246e6fe899e8a8c03647a55a54047387feaa00923c78c29b",
|
|
559
568
|
"pipeline/scripts/smoke-cross-cli-behavior.sh": "15f29422640eb47c863523cdc3651f9faaf7df0ebe24fff5e59e5b68708a6b78",
|
|
@@ -572,13 +581,13 @@
|
|
|
572
581
|
"pipeline/scripts/token-budget-report.mjs": "508bbc659df478c535c0ecdd3f8611372af8fef0b0932c7b19a247af2b2b9265",
|
|
573
582
|
"pipeline/scripts/triage-memory.mjs": "2d8541145f1749593ae5728fb4c9eb3001484edb5e4d37be473aeec34d1dbe7c",
|
|
574
583
|
"pipeline/scripts/ui-tree-dumper.swift": "a09e42ef069eafa08c05afd8333e05b754ef6a7d8b9687712039b0f2c9801273",
|
|
575
|
-
"pipeline/scripts/unattended_policy.py": "
|
|
584
|
+
"pipeline/scripts/unattended_policy.py": "0f5dc7284421c529368e1dcbf30e3a85e43e73076fd09909ac185cf4ba1eff90",
|
|
576
585
|
"pipeline/scripts/uninstall.mjs": "880923522ef59fdd98cb7ecb1bdc85c0f15d1e2eed2d79d6d353e88712ca95fa",
|
|
577
586
|
"pipeline/scripts/update-check.sh": "9c00647e7ca4249414b2e5af08f61705ab5bd2106b6f66ae8ebce8aa143dc957",
|
|
578
587
|
"pipeline/scripts/update-issue-progress.sh": "ccfef87743e91272e009e396ac07461d2784b2fa84a06c802a582526eeeb9ed9",
|
|
579
588
|
"pipeline/scripts/usage-identity.mjs": "47c1f907fb1ab47672687ea0cbf2d0737985ae91ec2b48b4fe260e14c3d35d70",
|
|
580
589
|
"pipeline/scripts/usage-register.mjs": "cc19d7ce5efe57255ce1521d33ad4b9a75b6833385ed6edcc5e339faf3c6e06c",
|
|
581
|
-
"pipeline/scripts/usage-report.mjs": "
|
|
590
|
+
"pipeline/scripts/usage-report.mjs": "93c3f4055592c9cf5007cccf4710d06900576ccc10d1523c631acd13ca68cf10",
|
|
582
591
|
"pipeline/scripts/validate-analysis-doc.mjs": "ae56b7578ef51e008a99f84eba9def3e0f1dd2bd87a3880f2083aa98b365f7a1",
|
|
583
592
|
"pipeline/scripts/validate-analysis.mjs": "d2dc9ccf45f6ca2702908761939edd830d18b3b273016a4b449f26fe285d5ea1",
|
|
584
593
|
"pipeline/scripts/validate-code-graph.mjs": "0ceac2f5b59f641334d54dc30bee5265361fb5fe1fc97e2f9791b546efe79941",
|
|
@@ -597,7 +606,7 @@
|
|
|
597
606
|
"pipeline/scripts/worktree-prepare.sh": "9391c828375b127f77c86e3c830dbbaf355a61464c6437319969f2f1eecc72b1",
|
|
598
607
|
"pipeline/scripts/worktrees.mjs": "90dfd09b70fffe9b56c331a4ae2692cc248f4898f4ee6aee4239ef0b20888a90",
|
|
599
608
|
"pipeline/scripts/write-state.mjs": "e1198bf970eace07d3eff22b394808a526e473df65d3d58aa2d5a12cfdac8b49",
|
|
600
|
-
"pipeline/skills/.skill-manifest.json": "
|
|
609
|
+
"pipeline/skills/.skill-manifest.json": "449e794ee0d3e0661bd6143f0a2670955ae943b8caae53857a7614417771d1be",
|
|
601
610
|
"pipeline/skills/.skills-index.json": "042b1090f3e2ca310c6ce70d1bb304e8c7f96bd73133e504b95d83801608e470",
|
|
602
611
|
"pipeline/skills/shared/README.md": "a144fb39993470b6379d9660e0ee0371bdc858aee3d7c1b375cb6aba03d046db",
|
|
603
612
|
"pipeline/skills/shared/core/apple-archive-compliance/SKILL.md": "7239fef717ea45b79276bfcc2c3903acd57950b6e00dd6a2a66399c4b09cbd51",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mmerterden/multi-agent-pipeline",
|
|
3
|
-
"version": "20.
|
|
3
|
+
"version": "20.9.0",
|
|
4
4
|
"description": "6-phase AI development pipeline with full orchestration on Claude Code, Copilot CLI and Codex CLI. Analysis, planning, TDD, CLI-aware parallel review with consensus surfacing + Fable triage, default-FAIL evidence gates, secret + intent guards, per-phase cost ledger, persistent learnings memory, wiki generation, commit automation. Token-preserving uninstall.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "index.js",
|