agy-squad 0.0.0-stage → 0.1.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/.agents/skills/full-review/SKILL.md +89 -0
- package/.agents/skills/full-review/references/evidence-intake.md +146 -0
- package/.agents/skills/full-review/references/report-template.md +216 -0
- package/.agents/skills/full-review/references/review-roles.md +91 -0
- package/.agents/skills/pr-review/SKILL.md +60 -0
- package/.agents/skills/pr-review/references/pr-review-standard.md +163 -0
- package/.agents/skills/self-diagnosis/SKILL.md +63 -0
- package/.agents/skills/self-diagnosis/references/execution-and-teardown.md +71 -0
- package/.agents/skills/self-diagnosis/references/optimization-and-review-rubric.md +61 -0
- package/.agents/skills/self-diagnosis/resources/comparative-research-manifest.json +42 -0
- package/.agents/skills/self-diagnosis/resources/self-diagnosis-manifest.json +144 -0
- package/.agents/skills/self-diagnosis/scripts/diagnose.mjs +1971 -0
- package/.agents/skills/swarm-governance/SKILL.md +59 -0
- package/.agents/skills/swarm-governance/references/bundling-and-wire-format.md +88 -0
- package/.agents/skills/swarm-governance/references/intake-and-planning.md +120 -0
- package/.agents/skills/swarm-governance/references/large-swarms.md +39 -0
- package/CHANGELOG.md +16 -0
- package/LICENSE +21 -0
- package/README.md +156 -2
- package/bin/agy-squad.mjs +293 -0
- package/docs/assets/architecture-overview.svg +39 -0
- package/docs/assets/manifest-and-modes.svg +39 -0
- package/docs/assets/role-and-verdict-gate.svg +39 -0
- package/docs/assets/skill-role-workflows.svg +39 -0
- package/docs/assets/swarm-lifecycle.svg +39 -0
- package/docs/benchmarks.md +102 -0
- package/docs/concepts.md +81 -0
- package/docs/core-workflows.md +128 -0
- package/docs/getting-started.md +116 -0
- package/docs/index.md +47 -0
- package/docs/plans/LEDGER.md +24 -0
- package/docs/plans/comparative-harness-architecture-retest.md +1174 -0
- package/docs/plans/comparative-harness-architecture-teamwork.md +1170 -0
- package/docs/plans/comparative-harness-architecture.md +256 -0
- package/docs/plans/native-enforcement-ledger.md +126 -0
- package/docs/plans/pr3-option-b-fixes.md +803 -0
- package/docs/plans/wsl-cli-verification.md +55 -0
- package/docs/reviews/post-pr5-governance-review.md +221 -0
- package/docs/reviews/pr1-code-review-ledger.md +581 -0
- package/docs/reviews/pr1-production-readiness-review.md +764 -0
- package/docs/reviews/pr2-documentation-review-ledger.md +380 -0
- package/docs/reviews/pr3-squad-alignment-full-review.md +1021 -0
- package/docs/reviews/pr4-swarm-governance-pivot-review.md +593 -0
- package/docs/reviews/pr5-full-review-direction.md +330 -0
- package/docs/reviews/pr5-independent-review.md +266 -0
- package/docs/reviews/pr5-layered-swarm-review.md +513 -0
- package/docs/reviews/pr5-phase2-swarm-planner-review.md +470 -0
- package/docs/reviews/pr5-reconciled-review.md +573 -0
- package/docs/reviews/rebuild-wsl-dispatch-review-r2.md +427 -0
- package/docs/reviews/rebuild-wsl-dispatch-review.md +552 -0
- package/docs/roles-and-workflows.md +115 -0
- package/docs/stopping-agents.md +39 -0
- package/docs/tools.md +122 -0
- package/install.ps1 +5 -0
- package/install.sh +4 -0
- package/mcp/briefs.mjs +202 -0
- package/mcp/dispatch.mjs +280 -0
- package/mcp/handoffs.mjs +814 -0
- package/mcp/index.js +322 -0
- package/mcp/planner.mjs +755 -0
- package/mcp/verdicts.mjs +224 -0
- package/package.json +57 -4
- package/plugin.json +20 -0
- package/scripts/install-register.mjs +510 -0
- package/scripts/release-preflight.mjs +142 -0
|
@@ -0,0 +1,293 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import fs from "node:fs";
|
|
3
|
+
import path from "node:path";
|
|
4
|
+
import { fileURLToPath } from "node:url";
|
|
5
|
+
import { parseArgs } from "node:util";
|
|
6
|
+
import { handleDispatchSquad } from "../mcp/dispatch.mjs";
|
|
7
|
+
import { bundleReports, computeEvidenceDigest, decodeUtf8, fingerprint, inspectHandoffs, pruneReports, readFile, verifyBundle } from "../mcp/handoffs.mjs";
|
|
8
|
+
import { planSquadCohort } from "../mcp/planner.mjs";
|
|
9
|
+
import { parseContentVerdict, parseIntegrityVerdict } from "../mcp/verdicts.mjs";
|
|
10
|
+
import { printStatus, runCheckOnly, runInstall, runRestoreBackups, runUninstall } from "../scripts/install-register.mjs";
|
|
11
|
+
|
|
12
|
+
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
13
|
+
const pkgVersion = (() => {
|
|
14
|
+
try {
|
|
15
|
+
return JSON.parse(fs.readFileSync(path.resolve(__dirname, "../package.json"), "utf8")).version || "0.1.0";
|
|
16
|
+
} catch {
|
|
17
|
+
return "0.1.0";
|
|
18
|
+
}
|
|
19
|
+
})();
|
|
20
|
+
|
|
21
|
+
const usage = [
|
|
22
|
+
"Agy-Squad Governance & Verification CLI (pairs with Antigravity native /swarm):",
|
|
23
|
+
" agy-squad setup [--check] Install or synchronize plugin, skills, MCP server, and CLI shim",
|
|
24
|
+
" agy-squad status Check live integration status across Antigravity",
|
|
25
|
+
" agy-squad uninstall [--restore-backups] Remove plugin link, MCP entry, and CLI shims",
|
|
26
|
+
" agy-squad restore-backups Restore configuration backups (*.bak)",
|
|
27
|
+
" agy-squad plan (--manifest <path> | \"<task>\") [--squad <id>] [--topology flat|layered] [--mode swarm|subagent] [--model <id>] [--workspace-isolation inherit|share|branch] [--scope <path>...] [--role <title>...] [--no-integrity] [--report-root <path>] [--known-model <id>...] [--occupied-worker <name>...]",
|
|
28
|
+
" agy-squad dispatch (--squad <id> | <squadId>) [--manifest <path>] Compile invoke_subagent payload (subagent mode only)",
|
|
29
|
+
" agy-squad fingerprint <file...> Compute SHA-256 fingerprints for verifiedFiles",
|
|
30
|
+
" agy-squad inspect <record.json> Reconcile handoff readiness for a cohort",
|
|
31
|
+
" agy-squad digest <record.json> Compute canonical Evidence Digest for integrity audit binding",
|
|
32
|
+
" agy-squad bundle <record.json> [--allow-unaudited] [--replace] [--predecessor <sha256>] Create a SHA-256 verified proof bundle",
|
|
33
|
+
" agy-squad verify <report.sources.json> Verify bundle integrity, synthesis, and audit hashes",
|
|
34
|
+
" agy-squad prune <report.sources.json> <accepted-sha256> [--keep-reports] Prune loose reports after verification",
|
|
35
|
+
" agy-squad verdict [--integrity] <report.md> Strictly parse a content or integrity verdict"
|
|
36
|
+
].join("\n");
|
|
37
|
+
|
|
38
|
+
function runPlanCommand(rest, root) {
|
|
39
|
+
if (!rest.length) {
|
|
40
|
+
throw new Error(
|
|
41
|
+
"Usage: agy-squad plan (--manifest <path> | \"<task>\") [--squad <id>] [--topology flat|layered] [--mode swarm|subagent] [--model <id>] [--workspace-isolation inherit|share|branch] [--scope <path>...] [--role <title>...] [--no-integrity] [--report-root <path>] [--known-model <id>...] [--occupied-worker <name>...]"
|
|
42
|
+
);
|
|
43
|
+
}
|
|
44
|
+
const { values, positionals } = parseArgs({
|
|
45
|
+
args: rest,
|
|
46
|
+
allowPositionals: true,
|
|
47
|
+
options: {
|
|
48
|
+
manifest: { type: "string" },
|
|
49
|
+
squad: { type: "string" },
|
|
50
|
+
topology: { type: "string" },
|
|
51
|
+
mode: { type: "string" },
|
|
52
|
+
model: { type: "string" },
|
|
53
|
+
"workspace-isolation": { type: "string" },
|
|
54
|
+
scope: { type: "string", multiple: true },
|
|
55
|
+
role: { type: "string", multiple: true },
|
|
56
|
+
"no-integrity": { type: "boolean", default: false },
|
|
57
|
+
"report-root": { type: "string" },
|
|
58
|
+
"known-model": { type: "string", multiple: true },
|
|
59
|
+
"occupied-worker": { type: "string", multiple: true }
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
const task = positionals.join(" ").trim();
|
|
63
|
+
const planArgs = {
|
|
64
|
+
...(values.manifest !== undefined ? { manifestPath: values.manifest } : {}),
|
|
65
|
+
...(task ? { task } : {}),
|
|
66
|
+
...(values.squad !== undefined ? { squadId: values.squad } : {}),
|
|
67
|
+
...(values.topology !== undefined ? { topology: values.topology } : {}),
|
|
68
|
+
...(values.mode !== undefined ? { executionMode: values.mode } : {}),
|
|
69
|
+
...(values.model !== undefined ? { model: values.model } : {}),
|
|
70
|
+
...(values["workspace-isolation"] !== undefined ? { workspaceIsolation: values["workspace-isolation"] } : {}),
|
|
71
|
+
...(values.scope !== undefined ? { scopeFiles: values.scope } : {}),
|
|
72
|
+
...(values.role !== undefined ? { roles: values.role } : {}),
|
|
73
|
+
...(values["no-integrity"] ? { includeIntegrityAuditor: false } : {}),
|
|
74
|
+
...(values["report-root"] !== undefined ? { reportRoot: values["report-root"] } : {}),
|
|
75
|
+
...(values["known-model"] !== undefined ? { knownModels: values["known-model"] } : {}),
|
|
76
|
+
...(values["occupied-worker"] !== undefined ? { occupiedWorkerNames: values["occupied-worker"] } : {})
|
|
77
|
+
};
|
|
78
|
+
return planSquadCohort(planArgs, root);
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
function runDispatchCommand(rest, root) {
|
|
82
|
+
if (!rest.length) {
|
|
83
|
+
throw new Error("Usage: agy-squad dispatch (--squad <id> | <squadId>) [--manifest <path>]");
|
|
84
|
+
}
|
|
85
|
+
const { values, positionals } = parseArgs({
|
|
86
|
+
args: rest,
|
|
87
|
+
allowPositionals: true,
|
|
88
|
+
options: {
|
|
89
|
+
squad: { type: "string" },
|
|
90
|
+
manifest: { type: "string" }
|
|
91
|
+
}
|
|
92
|
+
});
|
|
93
|
+
if (values.squad !== undefined && positionals.length > 0) {
|
|
94
|
+
throw new Error("Pass either --squad <id> or a positional <squadId>, not both.");
|
|
95
|
+
}
|
|
96
|
+
if (positionals.length > 1) {
|
|
97
|
+
throw new Error("Usage: agy-squad dispatch (--squad <id> | <squadId>) [--manifest <path>]");
|
|
98
|
+
}
|
|
99
|
+
const squadId = values.squad ?? positionals[0];
|
|
100
|
+
if (!squadId) {
|
|
101
|
+
throw new Error("Usage: agy-squad dispatch (--squad <id> | <squadId>) [--manifest <path>]");
|
|
102
|
+
}
|
|
103
|
+
const result = handleDispatchSquad(
|
|
104
|
+
{
|
|
105
|
+
squadId,
|
|
106
|
+
...(values.manifest !== undefined ? { manifestPath: values.manifest } : {})
|
|
107
|
+
},
|
|
108
|
+
root
|
|
109
|
+
);
|
|
110
|
+
if (result.isError) {
|
|
111
|
+
throw new Error(result.content?.[0]?.text || "dispatch_squad failed.");
|
|
112
|
+
}
|
|
113
|
+
return result.content[0].text;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
const KNOWN_COMMANDS = new Set([
|
|
117
|
+
"setup",
|
|
118
|
+
"install",
|
|
119
|
+
"status",
|
|
120
|
+
"uninstall",
|
|
121
|
+
"restore-backups",
|
|
122
|
+
"plan",
|
|
123
|
+
"dispatch",
|
|
124
|
+
"fingerprint",
|
|
125
|
+
"inspect",
|
|
126
|
+
"digest",
|
|
127
|
+
"bundle",
|
|
128
|
+
"verify",
|
|
129
|
+
"prune",
|
|
130
|
+
"verdict",
|
|
131
|
+
"run"
|
|
132
|
+
]);
|
|
133
|
+
|
|
134
|
+
function parseSubcommandArgs(rest, usageLine, options = {}) {
|
|
135
|
+
try {
|
|
136
|
+
return parseArgs({
|
|
137
|
+
args: rest,
|
|
138
|
+
allowPositionals: true,
|
|
139
|
+
strict: true,
|
|
140
|
+
options
|
|
141
|
+
});
|
|
142
|
+
} catch (error) {
|
|
143
|
+
throw new Error(`${error.message}\n${usageLine}`);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
async function main(args) {
|
|
148
|
+
if (!args.length || args[0] === "--help" || args[0] === "-h") {
|
|
149
|
+
console.log(usage);
|
|
150
|
+
return 0;
|
|
151
|
+
}
|
|
152
|
+
if (args[0] === "--version" || args[0] === "-v") {
|
|
153
|
+
console.log(pkgVersion);
|
|
154
|
+
return 0;
|
|
155
|
+
}
|
|
156
|
+
const [command, ...rest] = args;
|
|
157
|
+
if (!KNOWN_COMMANDS.has(command)) {
|
|
158
|
+
throw new Error(`Unknown command '${command}'. Expected setup, status, uninstall, restore-backups, plan, dispatch, fingerprint, inspect, digest, bundle, verify, prune, or verdict.`);
|
|
159
|
+
}
|
|
160
|
+
if (command === "run") {
|
|
161
|
+
throw new Error("'agy-squad run' was retired in Phase 2; use 'agy-squad plan' with Antigravity native /swarm + swarm-governance.");
|
|
162
|
+
}
|
|
163
|
+
if (rest.includes("--help") || rest.includes("-h")) {
|
|
164
|
+
console.log(usage);
|
|
165
|
+
return 0;
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
if (command === "setup" || command === "install") {
|
|
169
|
+
const isCheck = rest.includes("--check") || rest.includes("-c");
|
|
170
|
+
const isRestore = rest.includes("--restore-backups") || rest.includes("restore-backups");
|
|
171
|
+
const isUninstall = rest.includes("--uninstall") || rest.includes("uninstall");
|
|
172
|
+
if (isCheck && (isRestore || isUninstall)) {
|
|
173
|
+
throw new Error("Conflicting flags: --check is read-only and cannot be combined with --uninstall or --restore-backups.");
|
|
174
|
+
}
|
|
175
|
+
if (isCheck) {
|
|
176
|
+
await runCheckOnly();
|
|
177
|
+
return 0;
|
|
178
|
+
}
|
|
179
|
+
await runInstall();
|
|
180
|
+
return 0;
|
|
181
|
+
}
|
|
182
|
+
if (command === "status") {
|
|
183
|
+
const st = printStatus();
|
|
184
|
+
return st.isInstalled ? 0 : 1;
|
|
185
|
+
}
|
|
186
|
+
if (command === "uninstall") {
|
|
187
|
+
const isRestore = rest.includes("--restore-backups") || rest.includes("restore-backups");
|
|
188
|
+
await runUninstall({ restoreBackups: isRestore });
|
|
189
|
+
return 0;
|
|
190
|
+
}
|
|
191
|
+
if (command === "restore-backups") {
|
|
192
|
+
await runRestoreBackups();
|
|
193
|
+
return 0;
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
const root = fs.realpathSync(process.cwd());
|
|
197
|
+
|
|
198
|
+
if (command === "plan") {
|
|
199
|
+
console.log(JSON.stringify(runPlanCommand(rest, root), null, 2));
|
|
200
|
+
return 0;
|
|
201
|
+
}
|
|
202
|
+
if (command === "dispatch") {
|
|
203
|
+
console.log(runDispatchCommand(rest, root));
|
|
204
|
+
return 0;
|
|
205
|
+
}
|
|
206
|
+
if (command === "fingerprint") {
|
|
207
|
+
const usageLine = "Usage: agy-squad fingerprint <file...>";
|
|
208
|
+
const { positionals } = parseSubcommandArgs(rest, usageLine);
|
|
209
|
+
if (!positionals.length) throw new Error(usageLine);
|
|
210
|
+
console.log(JSON.stringify(fingerprint(root, positionals), null, 2));
|
|
211
|
+
return 0;
|
|
212
|
+
}
|
|
213
|
+
if (command === "inspect") {
|
|
214
|
+
const usageLine = "Usage: agy-squad inspect <record.json>";
|
|
215
|
+
const { positionals } = parseSubcommandArgs(rest, usageLine);
|
|
216
|
+
if (positionals.length !== 1) throw new Error(usageLine);
|
|
217
|
+
const record = JSON.parse(decodeUtf8(readFile(root, positionals[0]), positionals[0]));
|
|
218
|
+
console.log(JSON.stringify(inspectHandoffs(root, record), null, 2));
|
|
219
|
+
return 0;
|
|
220
|
+
}
|
|
221
|
+
if (command === "digest") {
|
|
222
|
+
const usageLine = "Usage: agy-squad digest <record.json>";
|
|
223
|
+
const { positionals } = parseSubcommandArgs(rest, usageLine);
|
|
224
|
+
if (positionals.length !== 1) throw new Error(usageLine);
|
|
225
|
+
const record = JSON.parse(decodeUtf8(readFile(root, positionals[0]), positionals[0]));
|
|
226
|
+
console.log(JSON.stringify(computeEvidenceDigest(root, record), null, 2));
|
|
227
|
+
return 0;
|
|
228
|
+
}
|
|
229
|
+
if (command === "bundle") {
|
|
230
|
+
const usageLine = "Usage: agy-squad bundle <record.json> [--allow-unaudited] [--replace] [--predecessor <sha256>]";
|
|
231
|
+
const { values, positionals } = parseSubcommandArgs(rest, usageLine, {
|
|
232
|
+
"allow-unaudited": { type: "boolean", default: false },
|
|
233
|
+
replace: { type: "boolean", default: false },
|
|
234
|
+
predecessor: { type: "string" }
|
|
235
|
+
});
|
|
236
|
+
if (positionals.length !== 1) throw new Error(usageLine);
|
|
237
|
+
const record = JSON.parse(decodeUtf8(readFile(root, positionals[0]), positionals[0]));
|
|
238
|
+
if (!record || typeof record !== "object" || Array.isArray(record)) {
|
|
239
|
+
throw new Error("Provide a valid bundle record.");
|
|
240
|
+
}
|
|
241
|
+
const bundleInput = {
|
|
242
|
+
...record,
|
|
243
|
+
...(values["allow-unaudited"]
|
|
244
|
+
? { requireIntegrityAudit: false }
|
|
245
|
+
: (record.requireIntegrityAudit === undefined ? { requireIntegrityAudit: true } : {})),
|
|
246
|
+
...(values.replace ? { replaceExisting: true } : {}),
|
|
247
|
+
...(values.predecessor !== undefined ? { expectedPredecessorSha256: values.predecessor } : {})
|
|
248
|
+
};
|
|
249
|
+
console.log(JSON.stringify(bundleReports(root, bundleInput), null, 2));
|
|
250
|
+
return 0;
|
|
251
|
+
}
|
|
252
|
+
if (command === "verify") {
|
|
253
|
+
const usageLine = "Usage: agy-squad verify <report.sources.json>";
|
|
254
|
+
const { positionals } = parseSubcommandArgs(rest, usageLine);
|
|
255
|
+
if (positionals.length !== 1) throw new Error(usageLine);
|
|
256
|
+
console.log(JSON.stringify(verifyBundle(root, positionals[0]), null, 2));
|
|
257
|
+
return 0;
|
|
258
|
+
}
|
|
259
|
+
if (command === "prune") {
|
|
260
|
+
const usageLine = "Usage: agy-squad prune <report.sources.json> <accepted-sha256> [--keep-reports]";
|
|
261
|
+
const { values, positionals } = parseSubcommandArgs(rest, usageLine, {
|
|
262
|
+
"keep-reports": { type: "boolean", default: false }
|
|
263
|
+
});
|
|
264
|
+
if (positionals.length !== 2) {
|
|
265
|
+
throw new Error(usageLine);
|
|
266
|
+
}
|
|
267
|
+
console.log(JSON.stringify(pruneReports(root, positionals[0], positionals[1], { keepReports: values["keep-reports"] }), null, 2));
|
|
268
|
+
return 0;
|
|
269
|
+
}
|
|
270
|
+
if (command === "verdict") {
|
|
271
|
+
const usageLine = "Usage: agy-squad verdict [--integrity] <report.md>";
|
|
272
|
+
const { values, positionals } = parseSubcommandArgs(rest, usageLine, {
|
|
273
|
+
integrity: { type: "boolean", default: false }
|
|
274
|
+
});
|
|
275
|
+
if (positionals.length !== 1) {
|
|
276
|
+
throw new Error(usageLine);
|
|
277
|
+
}
|
|
278
|
+
const markdown = decodeUtf8(readFile(root, positionals[0]), positionals[0]);
|
|
279
|
+
const verdict = values.integrity ? parseIntegrityVerdict(markdown) : parseContentVerdict(markdown);
|
|
280
|
+
console.log(JSON.stringify({ verdict }, null, 2));
|
|
281
|
+
return 0;
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
throw new Error(`Unknown command '${command}'. Expected plan, dispatch, fingerprint, inspect, digest, bundle, verify, prune, or verdict.`);
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
main(process.argv.slice(2)).then(
|
|
288
|
+
code => { process.exitCode = code; },
|
|
289
|
+
error => {
|
|
290
|
+
console.error(error.message);
|
|
291
|
+
process.exitCode = 1;
|
|
292
|
+
}
|
|
293
|
+
);
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" class="pele pele-flowchart" viewBox="0 0 721 540" width="721" height="540" style="max-width:100%;height:auto;--_bg:var(--pele-bg,#fff);--_fg:var(--pele-fg,#1f1f1f);--_m:var(--pele-muted,#6e6e6e);--_l:var(--pele-line,#1f1f1f);--_s:var(--pele-surface,#f3f3f3);--_a:var(--pele-surface-alt,#e6e6e6);--_b:var(--pele-border,#8a8a8a);--_c:var(--pele-accent,#5b7bd5);color:var(--_fg);--_r:var(--pele-radius,4px);--_fm:var(--pele-font-mono,monospace);font:16px sans-serif;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;font-family:var(--pele-font,sans-serif)" fill="var(--_fg)" role="graphics-document document" aria-roledescription="flowchart">
|
|
2
|
+
<style>
|
|
3
|
+
:root {
|
|
4
|
+
--pele-font: -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans", Helvetica, Arial, sans-serif;
|
|
5
|
+
--pele-bg: #ffffff;
|
|
6
|
+
--pele-fg: #1f2328;
|
|
7
|
+
--pele-muted: #656d76;
|
|
8
|
+
--pele-line: #57606a;
|
|
9
|
+
--pele-surface: #f6f8fa;
|
|
10
|
+
--pele-surface-alt: #eaeef2;
|
|
11
|
+
--pele-border: #d0d7de;
|
|
12
|
+
--pele-accent: #0969da;
|
|
13
|
+
--pele-series-1: #0969da;
|
|
14
|
+
--pele-series-2: #1a7f37;
|
|
15
|
+
--pele-series-3: #9a6700;
|
|
16
|
+
--pele-series-4: #8250df;
|
|
17
|
+
--pele-series-5: #cf222e;
|
|
18
|
+
--pele-series-6: #bf3989;
|
|
19
|
+
}
|
|
20
|
+
@media (prefers-color-scheme: dark) {
|
|
21
|
+
:root {
|
|
22
|
+
--pele-bg: #0d1117;
|
|
23
|
+
--pele-fg: #e6edf3;
|
|
24
|
+
--pele-muted: #8b949e;
|
|
25
|
+
--pele-line: #8b949e;
|
|
26
|
+
--pele-surface: #161b22;
|
|
27
|
+
--pele-surface-alt: #21262d;
|
|
28
|
+
--pele-border: #30363d;
|
|
29
|
+
--pele-accent: #2f81f7;
|
|
30
|
+
--pele-series-1: #2f81f7;
|
|
31
|
+
--pele-series-2: #3fb950;
|
|
32
|
+
--pele-series-3: #d29922;
|
|
33
|
+
--pele-series-4: #a371f7;
|
|
34
|
+
--pele-series-5: #f85149;
|
|
35
|
+
--pele-series-6: #db61a2;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
</style>
|
|
39
|
+
<g class="pele-clusters"><g class="pele-cluster" data-id="L3"><rect x="32.5" y="406" width="655.66" height="126" fill="var(--_a)" fill-opacity="0.5" stroke="var(--_b)" style="rx:var(--_r)"/><text class="pele-cluster-label" fill="var(--_m)" x="181.66" y="431.6" text-anchor="middle">Agy-Context-Saver: Hook & Forensics</text></g><g class="pele-cluster" data-id="L2"><rect x="20.26" y="207" width="680.16" height="126" fill="var(--_a)" fill-opacity="0.5" stroke="var(--_b)" style="rx:var(--_r)"/><text class="pele-cluster-label" fill="var(--_m)" x="130.73" y="232.6" text-anchor="middle">Antigravity: Native Runtime</text></g><g class="pele-cluster" data-id="L1"><rect x="8" y="8" width="704.67" height="126" fill="var(--_a)" fill-opacity="0.5" stroke="var(--_b)" style="rx:var(--_r)"/><text class="pele-cluster-label" fill="var(--_m)" x="138.5" y="33.6" text-anchor="middle">Agy-Squad: Governance & Proof</text></g></g><g class="pele-edges" fill="none" stroke="var(--_l)" stroke-linecap="round"><g class="pele-edge" data-id="L_A1_A2_0"><path d="M178.74,81L219.74,81"/><path class="pele-marker" d="M226.74,81L218.74,84.36L218.74,77.64Z" fill="var(--_l)" stroke="none"/></g><g class="pele-edge" data-id="L_A2_A3_0"><path d="M417.47,81L458.47,81"/><path class="pele-marker" d="M465.47,81L457.47,84.36L457.47,77.64Z" fill="var(--_l)" stroke="none"/></g><g class="pele-edge" data-id="L_C1_C2_0"><path d="M214.76,479L255.76,479"/><path class="pele-marker" d="M262.76,479L254.76,482.36L254.76,475.64Z" fill="var(--_l)" stroke="none"/></g><g class="pele-edge" data-id="L_C2_C3_0"><path d="M439.26,479L480.26,479"/><path class="pele-marker" d="M487.26,479L479.26,482.36L479.26,475.64Z" fill="var(--_l)" stroke="none"/></g><g class="pele-edge" data-id="L_L1_L2_0"><path d="M245,134L245,200"/><path class="pele-marker" d="M245,207L241.64,199L248.36,199Z" fill="var(--_l)" stroke="none"/></g><g class="pele-edge" data-id="L_L2_L1_0"><path d="M480,207L480,141"/><path class="pele-marker" d="M480,134L483.36,142L476.64,142Z" fill="var(--_l)" stroke="none"/></g><g class="pele-edge" data-id="L_L2_L3_0"><path d="M245,333L245,399"/><path class="pele-marker" d="M245,406L241.64,398L248.36,398Z" fill="var(--_l)" stroke="none"/></g><g class="pele-edge" data-id="L_L3_L2_0"><path d="M480,406L480,340"/><path class="pele-marker" d="M480,333L483.36,341L476.64,341Z" fill="var(--_l)" stroke="none"/></g></g><g class="pele-edge-labels" font-size="14"><g class="pele-edge-label" data-id="L_L1_L2_0"><rect x="165" y="156.5" width="160" height="21" rx="3" fill="var(--_bg)"/><text x="245" y="171.9" text-anchor="middle">dispatches slots & briefs</text></g><g class="pele-edge-label" data-id="L_L2_L1_0"><rect x="396" y="156.5" width="168" height="21" rx="3" fill="var(--_bg)"/><text x="480" y="171.9" text-anchor="middle">READY <=500B & verify</text></g><g class="pele-edge-label" data-id="L_L2_L3_0"><rect x="183" y="355.5" width="124" height="21" rx="3" fill="var(--_bg)"/><text x="245" y="370.9" text-anchor="middle">executes tool calls</text></g><g class="pele-edge-label" data-id="L_L3_L2_0"><rect x="405" y="355.5" width="150" height="21" rx="3" fill="var(--_bg)"/><text x="480" y="370.9" text-anchor="middle">hook rewrite & logs</text></g></g><g class="pele-nodes"><g class="pele-node pele-shape-rect" data-id="A1" transform="translate(103.37,81)"><rect x="-75.37" y="-33" width="150.74" height="66" fill="var(--_s)" stroke="var(--_b)" style="rx:var(--_r)"/><text class="pele-label" text-anchor="middle" xml:space="preserve"><tspan x="0" y="-4.9">squad_planner /</tspan><tspan x="0" y="16.1">dispatch_squad</tspan></text></g><g class="pele-node pele-shape-rect" data-id="A2" transform="translate(322.1,81)"><rect x="-95.37" y="-33" width="190.74" height="66" fill="var(--_s)" stroke="var(--_b)" style="rx:var(--_r)"/><text class="pele-label" text-anchor="middle" xml:space="preserve"><tspan x="0" y="-4.9">Scoped Briefs & Slots</tspan><tspan x="0" y="16.1">(<= 500 B Receipts)</tspan></text></g><g class="pele-node pele-shape-rect" data-id="A3" transform="translate(579.07,81)"><rect x="-113.6" y="-38" width="227.2" height="76" fill="var(--_s)" stroke="var(--_b)" style="rx:var(--_r)"/><text class="pele-label" text-anchor="middle" xml:space="preserve"><tspan x="0" y="-14">bin/agy-squad.mjs</tspan><tspan x="0" y="5">dispatch/plan/verdict/fp</tspan><tspan x="0" y="24">inspect/digest/bundle/verify/prune</tspan></text></g><g class="pele-node pele-shape-rect" data-id="B1" transform="translate(153.17,280)"><rect x="-112.91" y="-33" width="225.82" height="66" fill="var(--_s)" stroke="var(--_b)" style="rx:var(--_r)"/><text class="pele-label" text-anchor="middle" xml:space="preserve"><tspan x="0" y="-4.9">/swarm Board + Worktrees</tspan><tspan x="0" y="16.1">inherit/share/branch</tspan></text></g><g class="pele-node pele-shape-rect" data-id="B2" transform="translate(392.56,280)"><rect x="-78.48" y="-33" width="156.96" height="66" fill="var(--_s)" stroke="var(--_b)" style="rx:var(--_r)"/><text class="pele-label" text-anchor="middle" xml:space="preserve"><tspan x="0" y="-4.9">invoke_subagent</tspan><tspan x="0" y="16.1">fallback</tspan></text></g><g class="pele-node pele-shape-rect" data-id="B3" transform="translate(599.73,280)"><rect x="-80.69" y="-24" width="161.38" height="48" fill="var(--_s)" stroke="var(--_b)" style="rx:var(--_r)"/><text class="pele-label" x="0" y="5.6" text-anchor="middle">Reactive Wakeup</text></g><g class="pele-node pele-shape-rect" data-id="C1" transform="translate(133.63,479)"><rect x="-81.13" y="-24" width="162.26" height="48" fill="var(--_s)" stroke="var(--_b)" style="rx:var(--_r)"/><text class="pele-label" x="0" y="5.6" text-anchor="middle">PreToolUse Hook</text></g><g class="pele-node pele-shape-rect" data-id="C2" transform="translate(351.01,479)"><rect x="-88.25" y="-33" width="176.5" height="66" fill="var(--_s)" stroke="var(--_b)" style="rx:var(--_r)"/><text class="pele-label" text-anchor="middle" xml:space="preserve"><tspan x="0" y="-4.9">rtk 0.51.0 Rewrite &</tspan><tspan x="0" y="16.1">3-Tier Inspection</tspan></text></g><g class="pele-node pele-shape-rect" data-id="C3" transform="translate(577.71,479)"><rect x="-90.46" y="-33" width="180.91" height="66" fill="var(--_s)" stroke="var(--_b)" style="rx:var(--_r)"/><text class="pele-label" text-anchor="middle" xml:space="preserve"><tspan x="0" y="-4.9">Transcript Forensics</tspan><tspan x="0" y="16.1">& Backoff</tspan></text></g></g></svg>
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" class="pele pele-flowchart" viewBox="0 0 734 616" width="734" height="616" style="max-width:100%;height:auto;--_bg:var(--pele-bg,#fff);--_fg:var(--pele-fg,#1f1f1f);--_m:var(--pele-muted,#6e6e6e);--_l:var(--pele-line,#1f1f1f);--_s:var(--pele-surface,#f3f3f3);--_a:var(--pele-surface-alt,#e6e6e6);--_b:var(--pele-border,#8a8a8a);--_c:var(--pele-accent,#5b7bd5);color:var(--_fg);--_r:var(--pele-radius,4px);--_fm:var(--pele-font-mono,monospace);font:16px sans-serif;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;font-family:var(--pele-font,sans-serif)" fill="var(--_fg)" role="graphics-document document" aria-roledescription="flowchart">
|
|
2
|
+
<style>
|
|
3
|
+
:root {
|
|
4
|
+
--pele-font: -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans", Helvetica, Arial, sans-serif;
|
|
5
|
+
--pele-bg: #ffffff;
|
|
6
|
+
--pele-fg: #1f2328;
|
|
7
|
+
--pele-muted: #656d76;
|
|
8
|
+
--pele-line: #57606a;
|
|
9
|
+
--pele-surface: #f6f8fa;
|
|
10
|
+
--pele-surface-alt: #eaeef2;
|
|
11
|
+
--pele-border: #d0d7de;
|
|
12
|
+
--pele-accent: #0969da;
|
|
13
|
+
--pele-series-1: #0969da;
|
|
14
|
+
--pele-series-2: #1a7f37;
|
|
15
|
+
--pele-series-3: #9a6700;
|
|
16
|
+
--pele-series-4: #8250df;
|
|
17
|
+
--pele-series-5: #cf222e;
|
|
18
|
+
--pele-series-6: #bf3989;
|
|
19
|
+
}
|
|
20
|
+
@media (prefers-color-scheme: dark) {
|
|
21
|
+
:root {
|
|
22
|
+
--pele-bg: #0d1117;
|
|
23
|
+
--pele-fg: #e6edf3;
|
|
24
|
+
--pele-muted: #8b949e;
|
|
25
|
+
--pele-line: #8b949e;
|
|
26
|
+
--pele-surface: #161b22;
|
|
27
|
+
--pele-surface-alt: #21262d;
|
|
28
|
+
--pele-border: #30363d;
|
|
29
|
+
--pele-accent: #2f81f7;
|
|
30
|
+
--pele-series-1: #2f81f7;
|
|
31
|
+
--pele-series-2: #3fb950;
|
|
32
|
+
--pele-series-3: #d29922;
|
|
33
|
+
--pele-series-4: #a371f7;
|
|
34
|
+
--pele-series-5: #f85149;
|
|
35
|
+
--pele-series-6: #db61a2;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
</style>
|
|
39
|
+
<g class="pele-clusters"><g class="pele-cluster" data-id="OUT"><rect x="8" y="481.04" width="717.06" height="126" fill="var(--_a)" fill-opacity="0.5" stroke="var(--_b)" style="rx:var(--_r)"/><text class="pele-cluster-label" fill="var(--_m)" x="86.02" y="506.64" text-anchor="middle">Compiled Outputs</text></g><g class="pele-cluster" data-id="CORE"><rect x="92" y="203" width="548" height="230.04" fill="var(--_a)" fill-opacity="0.5" stroke="var(--_b)" style="rx:var(--_r)"/><text class="pele-cluster-label" fill="var(--_m)" x="190.72" y="228.6" text-anchor="middle">Compiler & Validation</text></g><g class="pele-cluster" data-id="IN"><rect x="136" y="8" width="465" height="147" fill="var(--_a)" fill-opacity="0.5" stroke="var(--_b)" style="rx:var(--_r)"/><text class="pele-cluster-label" fill="var(--_m)" x="214.58" y="33.6" text-anchor="middle">Planner & Compiler Inputs</text></g></g><g class="pele-edges" fill="none" stroke="var(--_l)" stroke-linecap="round"><g class="pele-edge" data-id="L_M1_M2_0"><path d="M297,328.02L334.18,328.02"/><path class="pele-marker" d="M341.18,328.02L333.18,331.38L333.18,324.66Z" fill="var(--_l)" stroke="none"/></g><g class="pele-edge" data-id="L_IN_CORE_0"><path d="M366.53,155L366.53,196"/><path class="pele-marker" d="M366.53,203L363.17,195L369.89,195Z" fill="var(--_l)" stroke="none"/></g><g class="pele-edge" data-id="L_CORE_OUT_0"><path d="M366.53,433.04L366.53,474.04"/><path class="pele-marker" d="M366.53,481.04L363.17,473.04L369.89,473.04Z" fill="var(--_l)" stroke="none"/></g></g><g class="pele-nodes"><g class="pele-node pele-shape-rect" data-id="I1" transform="translate(230,91.5)"><rect x="-74" y="-33" width="148" height="66" fill="var(--_s)" stroke="var(--_b)" style="rx:var(--_r)"/><text class="pele-label" text-anchor="middle" xml:space="preserve"><tspan x="0" y="-4.9">manifestPath |</tspan><tspan x="0" y="16.1">manifest | task</tspan></text></g><g class="pele-node pele-shape-rect" data-id="I2" transform="translate(459.96,91.5)"><rect x="-120" y="-43.5" width="240" height="87" fill="var(--_s)" stroke="var(--_b)" style="rx:var(--_r)"/><text class="pele-label" text-anchor="middle" xml:space="preserve"><tspan x="0" y="-15.4">plan: --mode|--model</tspan><tspan x="0" y="5.6">--workspace-isolation</tspan><tspan x="0" y="26.6">dispatch: --squad <id></tspan></text></g><g class="pele-node pele-shape-rect" data-id="M1" transform="translate(200,328.02)"><rect x="-97" y="-43.5" width="194" height="87" fill="var(--_s)" stroke="var(--_b)" style="rx:var(--_r)"/><text class="pele-label" text-anchor="middle" xml:space="preserve"><tspan x="0" y="-15.4">squad_planner (/swarm)</tspan><tspan x="0" y="5.6">dispatch_squad (subagent)</tspan><tspan x="0" y="26.6">+ mcp/briefs.mjs</tspan></text></g><g class="pele-node pele-shape-diam" data-id="M2" transform="translate(477.22,328.02)"><polygon points="0,-85.02 136.03,0 0,85.02 -136.03,0" fill="var(--_s)" stroke="var(--_b)"/><text class="pele-label" text-anchor="middle" xml:space="preserve"><tspan x="0" y="-4.9">scopeOverlaps (readOnly)</tspan><tspan x="0" y="16.1">& knownModels</tspan></text></g><g class="pele-node pele-shape-rect" data-id="O1" transform="translate(105.57,554.04)"><rect x="-82" y="-33" width="164" height="66" fill="var(--_s)" stroke="var(--_b)" style="rx:var(--_r)"/><text class="pele-label" text-anchor="middle" xml:space="preserve"><tspan x="0" y="-4.9">swarmAdd + slots</tspan><tspan x="0" y="16.1">(squad_planner)</tspan></text></g><g class="pele-node pele-shape-rect" data-id="O2" transform="translate(338.95,554.04)"><rect x="-107.82" y="-33" width="215.63" height="66" fill="var(--_s)" stroke="var(--_b)" style="rx:var(--_r)"/><text class="pele-label" text-anchor="middle" xml:space="preserve"><tspan x="0" y="-4.9">Subagents[] + alias note</tspan><tspan x="0" y="16.1">(dispatch_squad)</tspan></text></g><g class="pele-node pele-shape-rect" data-id="O3" transform="translate(599.91,554.04)"><rect x="-105.14" y="-33" width="210.29" height="66" fill="var(--_s)" stroke="var(--_b)" style="rx:var(--_r)"/><text class="pele-label" text-anchor="middle" xml:space="preserve"><tspan x="0" y="-4.9">provenanceScaffold &</tspan><tspan x="0" y="16.1">bundleRecordTemplates</tspan></text></g></g></svg>
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" class="pele pele-flowchart" viewBox="0 0 580 498" width="580" height="498" style="max-width:100%;height:auto;--_bg:var(--pele-bg,#fff);--_fg:var(--pele-fg,#1f1f1f);--_m:var(--pele-muted,#6e6e6e);--_l:var(--pele-line,#1f1f1f);--_s:var(--pele-surface,#f3f3f3);--_a:var(--pele-surface-alt,#e6e6e6);--_b:var(--pele-border,#8a8a8a);--_c:var(--pele-accent,#5b7bd5);color:var(--_fg);--_r:var(--pele-radius,4px);--_fm:var(--pele-font-mono,monospace);font:16px sans-serif;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;font-family:var(--pele-font,sans-serif)" fill="var(--_fg)" role="graphics-document document" aria-roledescription="flowchart">
|
|
2
|
+
<style>
|
|
3
|
+
:root {
|
|
4
|
+
--pele-font: -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans", Helvetica, Arial, sans-serif;
|
|
5
|
+
--pele-bg: #ffffff;
|
|
6
|
+
--pele-fg: #1f2328;
|
|
7
|
+
--pele-muted: #656d76;
|
|
8
|
+
--pele-line: #57606a;
|
|
9
|
+
--pele-surface: #f6f8fa;
|
|
10
|
+
--pele-surface-alt: #eaeef2;
|
|
11
|
+
--pele-border: #d0d7de;
|
|
12
|
+
--pele-accent: #0969da;
|
|
13
|
+
--pele-series-1: #0969da;
|
|
14
|
+
--pele-series-2: #1a7f37;
|
|
15
|
+
--pele-series-3: #9a6700;
|
|
16
|
+
--pele-series-4: #8250df;
|
|
17
|
+
--pele-series-5: #cf222e;
|
|
18
|
+
--pele-series-6: #bf3989;
|
|
19
|
+
}
|
|
20
|
+
@media (prefers-color-scheme: dark) {
|
|
21
|
+
:root {
|
|
22
|
+
--pele-bg: #0d1117;
|
|
23
|
+
--pele-fg: #e6edf3;
|
|
24
|
+
--pele-muted: #8b949e;
|
|
25
|
+
--pele-line: #8b949e;
|
|
26
|
+
--pele-surface: #161b22;
|
|
27
|
+
--pele-surface-alt: #21262d;
|
|
28
|
+
--pele-border: #30363d;
|
|
29
|
+
--pele-accent: #2f81f7;
|
|
30
|
+
--pele-series-1: #2f81f7;
|
|
31
|
+
--pele-series-2: #3fb950;
|
|
32
|
+
--pele-series-3: #d29922;
|
|
33
|
+
--pele-series-4: #a371f7;
|
|
34
|
+
--pele-series-5: #f85149;
|
|
35
|
+
--pele-series-6: #db61a2;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
</style>
|
|
39
|
+
<g class="pele-clusters"><g class="pele-cluster" data-id="Audit"><rect x="300" y="8" width="276" height="344" fill="var(--_a)" fill-opacity="0.5" stroke="var(--_b)" style="rx:var(--_r)"/><text class="pele-cluster-label" fill="var(--_m)" x="438" y="33.6" text-anchor="middle">Flat Integrity Auditor (Audit Plane)</text></g><g class="pele-cluster" data-id="Content"><rect x="8" y="50" width="255.63" height="302" fill="var(--_a)" fill-opacity="0.5" stroke="var(--_b)" style="rx:var(--_r)"/><text class="pele-cluster-label" fill="var(--_m)" x="134.94" y="75.6" text-anchor="middle">Working Squad (Content Plane)</text></g></g><g class="pele-edges" fill="none" stroke="var(--_l)" stroke-linecap="round"><g class="pele-edge" data-id="L_SP_LD_0"><path d="M135.82,177L135.82,218"/><path class="pele-marker" d="M135.82,225L132.46,217L139.18,217Z" fill="var(--_l)" stroke="none"/></g><g class="pele-edge" data-id="L_AU_IV_0"><path d="M437.68,156L437.68,197"/><path class="pele-marker" d="M437.68,204L434.32,196L441.04,196Z" fill="var(--_l)" stroke="none"/></g><g class="pele-edge" data-id="L_LD_GATE_0"><path d="M135.82,312L135.82,352C135.82,369.58 271.94,369.58 271.94,387.16L271.94,393.16"/><path class="pele-marker" d="M271.94,400.16L268.58,392.16L275.3,392.16Z" fill="var(--_l)" stroke="none"/></g><g class="pele-edge" data-id="L_IV_GATE_0"><path d="M437.68,312L437.68,352C437.68,369.58 301.56,369.58 301.56,387.16L301.56,393.16"/><path class="pele-marker" d="M301.56,400.16L298.2,392.16L304.92,392.16Z" fill="var(--_l)" stroke="none"/></g></g><g class="pele-nodes"><g class="pele-node pele-shape-rect" data-id="SP" transform="translate(135.82,133.5)"><rect x="-88.91" y="-43.5" width="177.82" height="87" fill="var(--_s)" stroke="var(--_b)" style="rx:var(--_r)"/><text class="pele-label" text-anchor="middle" xml:space="preserve"><tspan x="0" y="-15.4">Specialists</tspan><tspan x="0" y="5.6">report.md + READY</tspan><tspan x="0" y="26.6"><= 500 B</tspan></text></g><g class="pele-node pele-shape-rect" data-id="LD" transform="translate(135.82,268.5)"><rect x="-107.82" y="-43.5" width="215.63" height="87" fill="var(--_s)" stroke="var(--_b)" style="rx:var(--_r)"/><text class="pele-label" text-anchor="middle" xml:space="preserve"><tspan x="0" y="-15.4">Lead Content Verdict:</tspan><tspan x="0" y="5.6">PASS / FAIL / BLOCKED</tspan><tspan x="0" y="26.6">+ fingerprint SHA-256</tspan></text></g><g class="pele-node pele-shape-rect" data-id="AU" transform="translate(437.68,102)"><rect x="-128" y="-54" width="256" height="108" fill="var(--_s)" stroke="var(--_b)" style="rx:var(--_r)"/><text class="pele-label" text-anchor="middle" xml:space="preserve"><tspan x="0" y="-25.9">audit-<id> | integrity_auditor</tspan><tspan x="0" y="-4.9">query_transcript</tspan><tspan x="0" y="16.1">summaryOnly=true</tspan><tspan x="0" y="37.1">+ Artifact Hash Check</tspan></text></g><g class="pele-node pele-shape-rect" data-id="IV" transform="translate(437.68,258)"><rect x="-105.58" y="-54" width="211.15" height="108" fill="var(--_s)" stroke="var(--_b)" style="rx:var(--_r)"/><text class="pele-label" text-anchor="middle" xml:space="preserve"><tspan x="0" y="-25.9">Target Squad +</tspan><tspan x="0" y="-4.9">Integrity Verdict:</tspan><tspan x="0" y="16.1">CLEAN |</tspan><tspan x="0" y="37.1">INTEGRITY VIOLATION</tspan></text></g><g class="pele-node pele-shape-cyl" data-id="GATE" transform="translate(286.75,445)"><path d="M-118,-33A118,12 0 0 1 118,-33V33A118,12 0 0 1 -118,33Z" fill="var(--_s)" stroke="var(--_b)"/><path d="M-118,-33A118,12 0 0 0 118,-33" fill="none" stroke="var(--_b)"/><text class="pele-label" text-anchor="middle" xml:space="preserve"><tspan x="0" y="1.1">bundle -> verify -> prune</tspan><tspan x="0" y="22.1">(opt-out: --allow-unaudited)</tspan></text></g></g></svg>
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" class="pele pele-flowchart" viewBox="0 0 504 1049" width="504" height="1049" style="max-width:100%;height:auto;--_bg:var(--pele-bg,#fff);--_fg:var(--pele-fg,#1f1f1f);--_m:var(--pele-muted,#6e6e6e);--_l:var(--pele-line,#1f1f1f);--_s:var(--pele-surface,#f3f3f3);--_a:var(--pele-surface-alt,#e6e6e6);--_b:var(--pele-border,#8a8a8a);--_c:var(--pele-accent,#5b7bd5);color:var(--_fg);--_r:var(--pele-radius,4px);--_fm:var(--pele-font-mono,monospace);font:16px sans-serif;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;font-family:var(--pele-font,sans-serif)" fill="var(--_fg)" role="graphics-document document" aria-roledescription="flowchart">
|
|
2
|
+
<style>
|
|
3
|
+
:root {
|
|
4
|
+
--pele-font: -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans", Helvetica, Arial, sans-serif;
|
|
5
|
+
--pele-bg: #ffffff;
|
|
6
|
+
--pele-fg: #1f2328;
|
|
7
|
+
--pele-muted: #656d76;
|
|
8
|
+
--pele-line: #57606a;
|
|
9
|
+
--pele-surface: #f6f8fa;
|
|
10
|
+
--pele-surface-alt: #eaeef2;
|
|
11
|
+
--pele-border: #d0d7de;
|
|
12
|
+
--pele-accent: #0969da;
|
|
13
|
+
--pele-series-1: #0969da;
|
|
14
|
+
--pele-series-2: #1a7f37;
|
|
15
|
+
--pele-series-3: #9a6700;
|
|
16
|
+
--pele-series-4: #8250df;
|
|
17
|
+
--pele-series-5: #cf222e;
|
|
18
|
+
--pele-series-6: #bf3989;
|
|
19
|
+
}
|
|
20
|
+
@media (prefers-color-scheme: dark) {
|
|
21
|
+
:root {
|
|
22
|
+
--pele-bg: #0d1117;
|
|
23
|
+
--pele-fg: #e6edf3;
|
|
24
|
+
--pele-muted: #8b949e;
|
|
25
|
+
--pele-line: #8b949e;
|
|
26
|
+
--pele-surface: #161b22;
|
|
27
|
+
--pele-surface-alt: #21262d;
|
|
28
|
+
--pele-border: #30363d;
|
|
29
|
+
--pele-accent: #2f81f7;
|
|
30
|
+
--pele-series-1: #2f81f7;
|
|
31
|
+
--pele-series-2: #3fb950;
|
|
32
|
+
--pele-series-3: #d29922;
|
|
33
|
+
--pele-series-4: #a371f7;
|
|
34
|
+
--pele-series-5: #f85149;
|
|
35
|
+
--pele-series-6: #db61a2;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
</style>
|
|
39
|
+
<g class="pele-edges" fill="none" stroke="var(--_l)" stroke-linecap="round"><g class="pele-edge" data-id="L_OP_PLAN_0"><path d="M315.51,56L315.51,97"/><path class="pele-marker" d="M315.51,104L312.15,96L318.87,96Z" fill="var(--_l)" stroke="none"/></g><g class="pele-edge" data-id="L_PLAN_COHORT_0"><path d="M292.14,170C292.14,187.5 183.56,187.5 183.56,205L183.56,211"/><path class="pele-marker" d="M183.56,218L180.2,210L186.92,210Z" fill="var(--_l)" stroke="none"/></g><g class="pele-edge" data-id="L_PLAN_PEERS_0"><path d="M338.88,170C338.88,187.5 386.71,187.5 386.71,205L386.71,211" stroke-dasharray="3 4"/><path class="pele-marker" d="M386.71,218L383.35,210L390.07,210Z" fill="var(--_l)" stroke="none"/></g><g class="pele-edge" data-id="L_COHORT_LEAD_0"><path d="M154.87,284L154.87,292.97C154.87,298.73 91.38,298.73 91.38,304.5L91.38,365"/><path class="pele-marker" d="M91.38,372L88.02,364L94.74,364Z" fill="var(--_l)" stroke="none"/></g><g class="pele-edge" data-id="L_LEAD_AUD_0"><path d="M91.38,438L91.38,498.5C91.38,506.19 157.26,506.19 157.26,513.88L157.26,519"/><path class="pele-marker" d="M157.26,526L153.9,518L160.62,518Z" fill="var(--_l)" stroke="none"/></g><g class="pele-edge" data-id="L_AUD_COHORT_0"><path d="M232.43,526L232.43,513C232.43,475.5 275.75,475.5 275.75,438L275.75,372C275.75,334.5 212.25,334.5 212.25,297L212.25,291"/><path class="pele-marker" d="M212.25,284L215.61,292L208.89,292Z" fill="var(--_l)" stroke="none"/></g><g class="pele-edge" data-id="L_AUD_FINAL_0"><path d="M194.85,592L194.85,673"/><path class="pele-marker" d="M194.85,680L191.49,672L198.21,672Z" fill="var(--_l)" stroke="none"/></g><g class="pele-edge" data-id="L_FINAL_IMPL_0"><path d="M171.05,746L171.05,754.97C171.05,760.73 106.97,760.73 106.97,766.5L106.97,812"/><path class="pele-marker" d="M106.97,819L103.61,811L110.33,811Z" fill="var(--_l)" stroke="none"/></g><g class="pele-edge" data-id="L_IMPL_FINAL_0"><path d="M213.93,819L213.93,753"/><path class="pele-marker" d="M213.93,746L217.29,754L210.57,754Z" fill="var(--_l)" stroke="none"/></g><g class="pele-edge" data-id="L_FINAL_BUN_0"><path d="M229.93,746L229.93,754.97C229.93,758.36 386.71,763.11 386.71,766.5L386.71,812"/><path class="pele-marker" d="M386.71,819L383.35,811L390.07,811Z" fill="var(--_l)" stroke="none"/></g><g class="pele-edge" data-id="L_BUN_CLS_0"><path d="M386.71,885L386.71,926"/><path class="pele-marker" d="M386.71,933L383.35,925L390.07,925Z" fill="var(--_l)" stroke="none"/></g></g><g class="pele-edge-labels" font-size="14"><g class="pele-edge-label" data-id="L_COHORT_LEAD_0"><rect x="32.9" y="306.5" width="116.95" height="36" rx="3" fill="var(--_bg)"/><text text-anchor="middle" xml:space="preserve"><tspan x="91.38" y="320.4">write report.md +</tspan><tspan x="91.38" y="338.4">READY <= 500 B</tspan></text></g><g class="pele-edge-label" data-id="L_LEAD_AUD_0"><rect x="39.13" y="460.5" width="104.49" height="36" rx="3" fill="var(--_bg)"/><text text-anchor="middle" xml:space="preserve"><tspan x="91.38" y="474.4">provisional</tspan><tspan x="91.38" y="492.4">Content Verdict</tspan></text></g><g class="pele-edge-label" data-id="L_AUD_COHORT_0"><rect x="193.18" y="387" width="165.15" height="36" rx="3" fill="var(--_bg)"/><text text-anchor="middle" xml:space="preserve"><tspan x="275.75" y="400.9">INTEGRITY VIOLATION:</tspan><tspan x="275.75" y="418.9">reject & rework</tspan></text></g><g class="pele-edge-label" data-id="L_AUD_FINAL_0"><rect x="114.99" y="614.5" width="159.72" height="36" rx="3" fill="var(--_bg)"/><text text-anchor="middle" xml:space="preserve"><tspan x="194.85" y="628.4">Target Squad +</tspan><tspan x="194.85" y="646.4">Integrity Verdict: CLEAN</tspan></text></g><g class="pele-edge-label" data-id="L_FINAL_IMPL_0"><rect x="10" y="768.5" width="193.93" height="21" rx="3" fill="var(--_bg)"/><text x="106.97" y="783.9" text-anchor="middle">FAIL / REQUEST_CHANGES</text></g><g class="pele-edge-label" data-id="L_FINAL_BUN_0"><rect x="324.36" y="768.5" width="124.72" height="21" rx="3" fill="var(--_bg)"/><text x="386.71" y="783.9" text-anchor="middle">PASS / APPROVE</text></g></g><g class="pele-nodes"><g class="pele-node pele-shape-rect" data-id="OP" transform="translate(315.51,32)"><rect x="-98.03" y="-24" width="196.06" height="48" fill="var(--_s)" stroke="var(--_b)" style="rx:var(--_r)"/><text class="pele-label" x="0" y="5.6" text-anchor="middle">Operator / Coordinator</text></g><g class="pele-node pele-shape-rect" data-id="PLAN" transform="translate(315.51,137)"><rect x="-100" y="-33" width="200" height="66" fill="var(--_s)" stroke="var(--_b)" style="rx:var(--_r)"/><text class="pele-label" text-anchor="middle" xml:space="preserve"><tspan x="0" y="-4.9">squad_planner / dispatch</tspan><tspan x="0" y="16.1">/ diagnose.mjs</tspan></text></g><g class="pele-node pele-shape-rect" data-id="COHORT" transform="translate(183.56,251)"><rect x="-80.69" y="-33" width="161.38" height="66" fill="var(--_s)" stroke="var(--_b)" style="rx:var(--_r)"/><text class="pele-label" text-anchor="middle" xml:space="preserve"><tspan x="0" y="-4.9">Working Leads or</tspan><tspan x="0" y="16.1">Flat Specialists</tspan></text></g><g class="pele-node pele-shape-rect" data-id="PEERS" transform="translate(386.71,251)"><rect x="-82.46" y="-33" width="164.93" height="66" fill="var(--_s)" stroke="var(--_b)" style="rx:var(--_r)"/><text class="pele-label" text-anchor="middle" xml:space="preserve"><tspan x="0" y="-4.9">/swarm Support:</tspan><tspan x="0" y="16.1">monitor & narrator</tspan></text></g><g class="pele-node pele-shape-rect" data-id="LEAD" transform="translate(91.38,405)"><rect x="-71.8" y="-33" width="143.6" height="66" fill="var(--_s)" stroke="var(--_b)" style="rx:var(--_r)"/><text class="pele-label" text-anchor="middle" xml:space="preserve"><tspan x="0" y="-4.9">Working Lead /</tspan><tspan x="0" y="16.1">Review Lead</tspan></text></g><g class="pele-node pele-shape-rect" data-id="AUD" transform="translate(194.85,559)"><rect x="-128" y="-33" width="256" height="66" fill="var(--_s)" stroke="var(--_b)" style="rx:var(--_r)"/><text class="pele-label" text-anchor="middle" xml:space="preserve"><tspan x="0" y="-4.9">Flat Integrity Auditor</tspan><tspan x="0" y="16.1">(audit-<id> | integrity_auditor)</tspan></text></g><g class="pele-node pele-shape-rect" data-id="FINAL" transform="translate(194.85,713)"><rect x="-75.8" y="-33" width="151.6" height="66" fill="var(--_s)" stroke="var(--_b)" style="rx:var(--_r)"/><text class="pele-label" text-anchor="middle" xml:space="preserve"><tspan x="0" y="-4.9">Lead / Reviewer</tspan><tspan x="0" y="16.1">Final Recheck</tspan></text></g><g class="pele-node pele-shape-rect" data-id="IMPL" transform="translate(156.45,852)"><rect x="-106.9" y="-33" width="213.81" height="66" fill="var(--_s)" stroke="var(--_b)" style="rx:var(--_r)"/><text class="pele-label" text-anchor="middle" xml:space="preserve"><tspan x="0" y="-4.9">Implementer Fix -></tspan><tspan x="0" y="16.1">Same-Cohort Re-Review</tspan></text></g><g class="pele-node pele-shape-rect" data-id="BUN" transform="translate(386.71,852)"><rect x="-83.36" y="-33" width="166.72" height="66" fill="var(--_s)" stroke="var(--_b)" style="rx:var(--_r)"/><text class="pele-label" text-anchor="middle" xml:space="preserve"><tspan x="0" y="-4.9">bundle -> verify -></tspan><tspan x="0" y="16.1">prune / --teardown</tspan></text></g><g class="pele-node pele-shape-rect" data-id="CLS" transform="translate(386.71,987)"><rect x="-109.14" y="-54" width="218.29" height="108" fill="var(--_s)" stroke="var(--_b)" style="rx:var(--_r)"/><text class="pele-label" text-anchor="middle" xml:space="preserve"><tspan x="0" y="-25.9">4-Check Closure:</tspan><tspan x="0" y="-4.9">kill workers + monitor,</tspan><tspan x="0" y="16.1">subagents [],</tspan><tspan x="0" y="37.1">tasks 0, child cmds exited</tspan></text></g></g></svg>
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" class="pele pele-flowchart" viewBox="0 0 792 412" width="792" height="412" style="max-width:100%;height:auto;--_bg:var(--pele-bg,#fff);--_fg:var(--pele-fg,#1f1f1f);--_m:var(--pele-muted,#6e6e6e);--_l:var(--pele-line,#1f1f1f);--_s:var(--pele-surface,#f3f3f3);--_a:var(--pele-surface-alt,#e6e6e6);--_b:var(--pele-border,#8a8a8a);--_c:var(--pele-accent,#5b7bd5);color:var(--_fg);--_r:var(--pele-radius,4px);--_fm:var(--pele-font-mono,monospace);font:16px sans-serif;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;font-family:var(--pele-font,sans-serif)" fill="var(--_fg)" role="graphics-document document" aria-roledescription="flowchart">
|
|
2
|
+
<style>
|
|
3
|
+
:root {
|
|
4
|
+
--pele-font: -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans", Helvetica, Arial, sans-serif;
|
|
5
|
+
--pele-bg: #ffffff;
|
|
6
|
+
--pele-fg: #1f2328;
|
|
7
|
+
--pele-muted: #656d76;
|
|
8
|
+
--pele-line: #57606a;
|
|
9
|
+
--pele-surface: #f6f8fa;
|
|
10
|
+
--pele-surface-alt: #eaeef2;
|
|
11
|
+
--pele-border: #d0d7de;
|
|
12
|
+
--pele-accent: #0969da;
|
|
13
|
+
--pele-series-1: #0969da;
|
|
14
|
+
--pele-series-2: #1a7f37;
|
|
15
|
+
--pele-series-3: #9a6700;
|
|
16
|
+
--pele-series-4: #8250df;
|
|
17
|
+
--pele-series-5: #cf222e;
|
|
18
|
+
--pele-series-6: #bf3989;
|
|
19
|
+
}
|
|
20
|
+
@media (prefers-color-scheme: dark) {
|
|
21
|
+
:root {
|
|
22
|
+
--pele-bg: #0d1117;
|
|
23
|
+
--pele-fg: #e6edf3;
|
|
24
|
+
--pele-muted: #8b949e;
|
|
25
|
+
--pele-line: #8b949e;
|
|
26
|
+
--pele-surface: #161b22;
|
|
27
|
+
--pele-surface-alt: #21262d;
|
|
28
|
+
--pele-border: #30363d;
|
|
29
|
+
--pele-accent: #2f81f7;
|
|
30
|
+
--pele-series-1: #2f81f7;
|
|
31
|
+
--pele-series-2: #3fb950;
|
|
32
|
+
--pele-series-3: #d29922;
|
|
33
|
+
--pele-series-4: #a371f7;
|
|
34
|
+
--pele-series-5: #f85149;
|
|
35
|
+
--pele-series-6: #db61a2;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
</style>
|
|
39
|
+
<g class="pele-clusters"><g class="pele-cluster" data-id="P2"><rect x="8" y="182" width="775.22" height="221.59" fill="var(--_a)" fill-opacity="0.5" stroke="var(--_b)" style="rx:var(--_r)"/><text class="pele-cluster-label" fill="var(--_m)" x="122" y="207.6" text-anchor="middle">Stage 2: Verify, Bundle & Close</text></g><g class="pele-cluster" data-id="P1"><rect x="65.31" y="8" width="660.61" height="126" fill="var(--_a)" fill-opacity="0.5" stroke="var(--_b)" style="rx:var(--_r)"/><text class="pele-cluster-label" fill="var(--_m)" x="172" y="33.6" text-anchor="middle">Stage 1: Plan & Execute</text></g></g><g class="pele-edges" fill="none" stroke="var(--_l)" stroke-linecap="round"><g class="pele-edge" data-id="L_S1_S2_0"><path d="M265.39,81L306.39,81"/><path class="pele-marker" d="M313.39,81L305.39,84.36L305.39,77.64Z" fill="var(--_l)" stroke="none"/></g><g class="pele-edge" data-id="L_S2_S3_0"><path d="M515.23,81L556.23,81"/><path class="pele-marker" d="M563.23,81L555.23,84.36L555.23,77.64Z" fill="var(--_l)" stroke="none"/></g><g class="pele-edge" data-id="L_S4_S5_0"><path d="M181,302.79L214.38,302.79"/><path class="pele-marker" d="M221.38,302.79L213.38,306.15L213.38,299.43Z" fill="var(--_l)" stroke="none"/></g><g class="pele-edge" data-id="L_S5_S6_0"><path d="M479.92,302.79L520.92,302.79"/><path class="pele-marker" d="M527.92,302.79L519.92,306.15L519.92,299.43Z" fill="var(--_l)" stroke="none"/></g><g class="pele-edge" data-id="L_P1_P2_0"><path d="M395.61,134L395.61,175"/><path class="pele-marker" d="M395.61,182L392.25,174L398.97,174Z" fill="var(--_l)" stroke="none"/></g></g><g class="pele-nodes"><g class="pele-node pele-shape-rect" data-id="S1" transform="translate(175.35,81)"><rect x="-90.04" y="-33" width="180.08" height="66" fill="var(--_s)" stroke="var(--_b)" style="rx:var(--_r)"/><text class="pele-label" text-anchor="middle" xml:space="preserve"><tspan x="0" y="-4.9">1. Plan</tspan><tspan x="0" y="16.1">plan or dispatch</tspan></text></g><g class="pele-node pele-shape-rect" data-id="S2" transform="translate(414.31,81)"><rect x="-100.92" y="-33" width="201.84" height="66" fill="var(--_s)" stroke="var(--_b)" style="rx:var(--_r)"/><text class="pele-label" text-anchor="middle" xml:space="preserve"><tspan x="0" y="-4.9">2. Spawn</tspan><tspan x="0" y="16.1">/swarm or subagent</tspan></text></g><g class="pele-node pele-shape-rect" data-id="S3" transform="translate(634.57,81)"><rect x="-71.34" y="-33" width="142.69" height="66" fill="var(--_s)" stroke="var(--_b)" style="rx:var(--_r)"/><text class="pele-label" text-anchor="middle" xml:space="preserve"><tspan x="0" y="-4.9">3. Work</tspan><tspan x="0" y="16.1">write report.md</tspan></text></g><g class="pele-node pele-shape-rect" data-id="S4" transform="translate(100.69,302.79)"><rect x="-80" y="-33" width="160" height="66" fill="var(--_s)" stroke="var(--_b)" style="rx:var(--_r)"/><text class="pele-label" text-anchor="middle" xml:space="preserve"><tspan x="0" y="-4.9">4. Post Receipt</tspan><tspan x="0" y="16.1">READY|PARTIAL <=500B</tspan></text></g><g class="pele-node pele-shape-diam" data-id="S5" transform="translate(350.65,302.79)"><polygon points="0,-80.79 129.27,0 0,80.79 -129.27,0" fill="var(--_s)" stroke="var(--_b)"/><text class="pele-label" text-anchor="middle" xml:space="preserve"><tspan x="0" y="-15.4">5. Dual Verdict</tspan><tspan x="0" y="5.6">Lead PASS +</tspan><tspan x="0" y="26.6">audit-<id> CLEAN</tspan></text></g><g class="pele-node pele-shape-stadium" data-id="S6" transform="translate(645.57,302.79)"><rect x="-117.65" y="-33" width="235.3" height="66" rx="33" fill="var(--_s)" stroke="var(--_b)"/><text class="pele-label" text-anchor="middle" xml:space="preserve"><tspan x="0" y="-4.9">6. Verify & Close</tspan><tspan x="0" y="16.1">bundle..prune / kill</tspan></text></g></g></svg>
|