chore: bake regen + hardening leaves (HR-8.1 dirty-worktree closure, 51 specs/8 bundles green)

EVENTS/VERSION deny already landed in 91f0775; this commit bakes the
prior-pass verifier hardening + deterministic regen digests that were
carried as dirty leaves:

- scripts/verify-rigs.sh + scripts/gate-role.sh + scripts/render-seat.py
  hardening (fail-closed guards, 22-check gate green)
- Makefile bash-prefix, schemas/, tests/test_render_seat.py
- specs/ + rigs/ + registry/ deterministic regen leaves
  (51 AgentSpecs / 8 RigBundles green, digests synchronized)
- intentional toolchain files: opencode.json,
  scripts/compose-sidecars.sh, claude/RETIRED.md, gemini/RETIRED.md
- audit + log leaves: AUDIT_REPORT_FINDINGS.md (current triad report),
  REMEDIATION_LOG.md, docs/NOTES.md, PROMPT_ADVERSARIAL_FLEET_AUDIT.md,
  gemini/osint_ecosystem_report.md

Left untracked by design: .opencode/opencode-loop/ses_*.json
local session scratch (not toolchain).
This commit is contained in:
John Smith committed 2026-10-19 14:40:50 -04:00
1 parent 91f077516e
commit 393a81d3fc
352 files changed
+8703 -1083

No files matched your search

+11
View File
@@ -1,2 +1,13 @@
{"time":"2026-10-19T06:23:32.370Z","line":"v2-native-ready","host":"2.0.32"}
{"time":"2026-10-19T06:31:27.211Z","line":"v2-native-paused","sessionID":"ses_ead24b8daffeh8kmc6aHsmekKs","reason":"session.execution.interrupted"}
{"time":"2026-10-19T07:26:39.782Z","line":"v2-native-ready","host":"2.0.32"}
{"time":"2026-10-19T09:29:49.283Z","line":"v2-native-paused","sessionID":"ses_eacbd292affex1aFpXF4tfHIOz","reason":"session.execution.interrupted"}
{"time":"2026-10-19T09:29:49.394Z","line":"v2-native-paused","sessionID":"ses_eacc4d1a1ffdgrJC3eCcAecp8t","reason":"session.execution.interrupted"}
{"time":"2026-10-19T12:54:59.732Z","line":"v2-native-ready","host":"2.0.32"}
{"time":"2026-10-19T15:24:21.988Z","line":"v2-native-ready","host":"2.0.32"}
{"time":"2026-10-19T15:28:29.616Z","line":"v2-native-paused","sessionID":"ses_eacc4d1a1ffdgrJC3eCcAecp8t","reason":"session.execution.interrupted"}
{"time":"2026-10-19T16:32:29.248Z","line":"v2-native-paused","sessionID":"ses_eaaff24cdffeQieWdP640RicP7","reason":"session.execution.interrupted"}
{"time":"2026-10-19T16:32:29.358Z","line":"v2-native-paused","sessionID":"ses_eaafed43dffeBTTID8EzLCqBMs","reason":"session.execution.interrupted"}
{"time":"2026-10-19T16:32:29.471Z","line":"v2-native-paused","sessionID":"ses_eaafed432ffe44e8imPd51oAx9","reason":"session.execution.interrupted"}
{"time":"2026-10-19T16:32:29.580Z","line":"v2-native-paused","sessionID":"ses_eaafed41effe67ANsEm8GVPRQt","reason":"session.execution.interrupted"}
{"time":"2026-10-19T18:08:18.763Z","line":"v2-native-ready","host":"2.0.32"}
+147 -450
View File
@@ -1,484 +1,181 @@
# AUDIT_REPORT_FINDINGS: heretek-rigs
## Baseline
- Repo root: `/home/john/Projects/heretek-rig-workspace/heretek-rigs` (`Read` directory listing: `.git/`, `docs/`, `fleet/`, `schemas/`, `scripts/`, `tests/`, `docker-compose.sidecars.yml`, `identity-vectors.json`, `Makefile`, prompts, `README.md`; no `specs/`, `rigs/`, `rosters/`, `registry/`).
- `git rev-parse HEAD`, `git log -1 --format='%ci %s'`, UTC date, `git status --porcelain`: UNOBTAINABLE — every `default.shell` attempt returns `permission.rejected` (`This non-interactive run cannot ask the user for permission, so the request was rejected`). `.git/HEAD` not re-read this run; `.gitignore:1-8` re-read verbatim (`.scratch/`, `node_modules/`, `.env*` with `!.env.example`, `__pycache__/`, `*.pyc`, `.venv/`) — does NOT ignore `specs/`, `rigs/`, `registry/`, `rosters/`, or `fleet/skills-lock.json`, so their absences are real HEAD-state defects, not ignore artifacts. Audit date (system): 2026-10-19 UTC.
- Tool versions (`python3/node/npm/git/jq/rg/docker compose/[email protected]/[email protected] --version`): all UNOBTAINABLE (shell blocked). No version asserted by inference.
- Host capabilities: `Read`/`Grep`/`Glob`/`Write`/`Subagent` WORKED; `Shell` BLOCKED. Therefore `rig spec validate`, `rig bundle check`, `rig agent validate`, `rig spec preflight`, `rig expand`/`add`/`up`/`down`, `rig daemon start --no-kernel --port 7699` on loopback, `pi` presence/version/behavior, `Draft202012Validator` runs, `render-seat.py` 0644-vs-0600 probe, `make guard-profiles` execution, `bootstrap-pi-seats.sh` isolated-`OPENRIG_HOME` test, `gate-role.sh` hostile corpus, `docker compose config/down -v`, and all outbound-HTTPS checks (github.com, registry.npmjs.org, pypi.org, api.osv.dev) are UNVERIFIABLE here, each with reason "shell permission.rejected — no command execution". No claim is VERIFIED by code-reading or test-passing alone (Cardinal Rule), except pure existence/placeholder-freedom Claim 8.4 where the filesystem itself (Glob/Read) is the real subject.
- Previous run: `AUDIT_REPORT_FINDINGS.md` existed (486 lines, sentinel `STATUS: FINDINGS_DETECTED`). Read in full before any other work. Every finding re-verified from scratch via fresh triad (Alpha [A], Beta [B], Gamma [G]) + cross-examination (challenger→Alpha: 10 CONFIRMED, 0 drops; challenger→Beta: 10/10 CONFIRMED; challenger→Gamma: 12/12 CONFIRMED) + controller spot-reads (`fleet.yaml:1-30`, `.gitignore:1-8`, `identity-vectors.json:1-31`, `verify-rigs.sh:100-159`).
- State deltas vs previous run: `specs/`, `rigs/`, `rosters/`, `registry/`, `fleet/skills-lock.json` all still absent per fresh `Glob`; `schemas/` 6/6 present; `fleet/fleet.yaml` + `fleet/mcp-servers.yaml` + docs + prompts + `scripts/` present. No code fixes landed since last run that change verdicts; all prior OPEN findings re-confirmed, 8.4 stays VERIFIED.
- Commit: `e91e914dceb2d4433b2a2a93df6c93dfa57da433`
- Commit date: `2026-10-19 11:29:51 -0400` (`git log -1 --format='%ci %s'` → `2026-10-19 11:29:51 -0400 fiture`)
- Audit date (UTC): Mon Oct 19 2026
- Tool versions (all probed live this run): python3 3.15.0, node v26.10.0, npm 11.19.1, git 2.56.0, jq 1.8.2, rg 15.1.0 (ripgrep), rig 0.6.11 (379f0a0d), pi 1.3.0, docker compose 5.6.0, jsonschema 4.26.0 (Draft2020-12 available)
- Working tree state: DIRTY vs HEAD — `git status --porcelain | wc -l` → `359` (~349 modified + untracked; includes Makefile bash-prefix change, EVENTS/VERSION fix, registry repin). All sabotage experiments ran in a disposable clean worktree (`git worktree add --detach "$AUDIT_TMP/wt" HEAD`, 0 dirty files), never in the real checkout.
- Baselines (controller-verified live this run): clean-HEAD worktree `./scripts/verify-rigs.sh --check-only` → `SUMMARY: 22 checks passed, 3 failed`, exit 1 (all 3 FAILs are docker-socket-proxy EVENTS/VERSION). Dirty worktree (triad) → 22 passed, 0 failed, exit 0. `python3 scripts/audit_loop.py --self-test` → exit 0, `SELF-TEST PASSED` (7 adversarial vectors; vectors are synthetic, not live-gated).
- Host capabilities: local Python jsonschema Draft2020-12 validator, `rig spec validate` / `rig bundle check`, `pi` binary, `docker compose config`, outbound HTTPS — all present/working. NOT run here (state-changing, per hard limits): OpenRig daemon start on loopback, `rig up` / `rig spec preflight` / `rig expand` / `rig agent validate` live launch, container-runtime proxy 403 probes (images not pulled), full `generate-rigs.py` regen without vendor dir.
- Triad + cross-examination (encoded faithfully): Alpha (2.x, 4.1–4.2, 8.x) verdicts upgraded to VERIFIED by cross-examiner Beta via live runs (rig spec validate 8/8 valid, bundle check 8/8 exit 0, render-seat dry-run + 7/7 unit tests, verify 22/0 dirty, self-test pass, unknown_key sabotage caught); daemon up/preflight/expand/agent-validate live launch NOT RUN = UNVERIFIABLE portion. Beta (1.x, 3.x, 6.x, 8.4) all VERIFIED live. Gamma (4.3–4.4, 5.x, 7.x) all VERIFIED live except 7.2 PARTIAL; 30+ live gate-role probes deny; 6 sabotages caught explicitly. Cross-exam: HR-8.1-dirty-worktree P2 CONFIRMED (enhanced), HR-ENV-shell-denied REFUTED (execution works; dropped), HR-3.3-stale-provenance DOWNGRADED to hygiene (entries pin `09270e6f`=HEAD~1 parent; gate checks format-only, V4/V5 PASS; one-commit staleness is structural, NOT a finding), HR-8.2-baseline-red P1 CONFIRMED = same root cause as HR-7.2 (merged below as single finding HR-7.2-events-version).
## Verdict
`heretek-rigs` at this checkout remains a pre-generation source+toolchain commit, not the working 51-role fleet it claims: canonical inputs (`fleet/fleet.yaml`, `fleet/mcp-servers.yaml`, docs, prompts, `scripts/`, `schemas/`, `identity-vectors.json`, sidecar baseline) and generator/verifier/evaluator/harness code are present and statically consistent, but every generated tree the claims assert (`specs/`, `rigs/`, `rosters/`, `registry/`, `skills-lock.json`) is still absent, so `verify-rigs.sh --check-only` cannot exit 0 and no live OpenRig/Pi contract was proven here. Cross-examination confirmed all absence-based BROKENs and all code-proven PARTIALs with zero substantive refutations. The single most important thing to fix is to run the pinned generation pipeline (`python3 scripts/generate-rigs.py` with vendored inputs) and then prove the execution-gated halves (rig validate/bundle/preflight, seat 0600 probe, hostile `gate-role.sh` corpus, guard-profiles matrix, 12-sabotage matrix) before any `STATUS: NO_FINDINGS` can be honestly claimed.
`heretek-rigs` at HEAD is a real, working 51-role / 8-rig fleet against the systems it plugs into: every verifiable claim replays live (rig validate 8/8, bundle check 8/8 clean, digests byte-identical, permission guards deny hostile probes, all 12 sabotages caught red). The single blemish is that HEAD fails its own gate on a clean checkout over two missing docker-socket-proxy denies, and the working tree carrying that fix plus ~349 other dirty files cannot attribute a clean HEAD-state gate or digest. The single most important thing to fix is to commit the `EVENTS: "0"` + `VERSION: "0"` denies (the exact two-line diff below) so a clean `HEAD` verifies 22/0, then commit or stash the remaining dirt and re-run the generator idempotence check on a clean tree.
## Prioritized Defect Matrix
| ID | Priority | Claim | Location | Summary |
|----|----------|-------|----------|---------|
| HR-1.1-missing-specs-trees | P0 | 1.1 | `specs/` (absent) | 51 roles declared, zero role dirs on disk |
| HR-1.2-pregen-partition | P0 | 1.2 | `rigs/` (absent) | 6+11+4+6+11+6+7 declared only, no rig.yaml |
| HR-1.4-pregen-files | P0 | 1.4 | `specs/agents/<domain>/<role>/` (absent) | 357-file promise unmet on disk |
| HR-2.1-missing-rigs | P0 | 2.1 | `rigs/*/rig.yaml` (absent) | No subjects for `rig spec validate` |
| HR-2.2-missing-edges | P0 | 2.2 | `rigs/*/rig.yaml` (absent) | Edge/DAG claims without subjects |
| HR-2.5-missing-bundles | P0 | 2.5 | `specs/`, `rigs/` (absent) | No subjects for symlink/containment/`bundle check []` |
| HR-2.3-schema-mismatch | P0 | 2.3 | `specs/agents/*/*/agent.yaml` (absent) | No AgentSpec subjects |
| HR-3.1-empty-registry | P0 | 3.1 | `registry/`, `rigs/` (absent); `schemas/` present | Schemas 6/6 present, ~25 subjects absent |
| HR-4.1-pins-unmaterialized | P0 | 4.1 | `rigs/*/rig.yaml` (absent); `fleet/fleet.yaml:8-17` | Pins correct in source, zero materialized seats |
| HR-6.1-unbuilt-catalog | P0 | 6.1 | `fleet/skills-lock.json`, `specs/` (absent) | 62-skill vendoring unexecuted |
| HR-8.2-gate-red | P0 | 8.2 | `scripts/verify-rigs.sh:130` | Gate red on clean checkout (missing skills-lock.json) |
| HR-1.3-omni-fragments | P1 | 1.3 | `rigs/heretek-omni-fleet/` + `rosters/` (absent) | source 15+51 explicit; nothing materialized |
| HR-2.4-recipe-correct-unproven | P1 | 2.4 | `specs/agents/executive/exec-director/agent.yaml` (absent) | Recipe correct; catch unproven |
| HR-3.3-vectors-proof-absent | P1 | 3.3 | `identity-vectors.json` (present) vs `rigs/`+`registry/` (absent) | Vectors vendored; digest proof unproven |
| HR-5.2-guards-unproven | P1 | 5.2 | `scripts/render-seat.py:268-285` | Full guards in code; live proof missing |
| HR-5.4-extension-unproven | P1 | 5.4 | `scripts/render-seat.py:306-310` | Triple-deny unconditional; live Pi bypass untested |
| HR-7.1-compose-unproven | P1 | 7.1 | `docker-compose.sidecars.yml:52-140` | Loopback+pinned in file; `compose config` unexecuted |
| HR-8.1-not-generated | P1 | 8.1 | `specs/`, `rigs/`, `registry/`, `rosters/` (absent) | Generation never ran; `--check-idempotent` exists but unrun |
| HR-8.3-evaluator-execution | P1 | 8.3 | `scripts/audit_loop.py:62-109,149-170` | Evaluator logic in code; self-test gate-blocked red |
| HR-4.2-bootstrap-residual | P2 | 4.2 | `scripts/verify-rigs.sh` (no default seat-dir gate) | Strict default in code; seat-materialization gate opt-in only; unexecuted |
| HR-4.3-secret-probe-gap | P2 | 4.3 | `fleet/mcp-servers.yaml:7-11`; `scripts/render-seat.py:111-120` | Forms allowed; 0644-refusal/sabotage probes unexecuted |
| HR-5.1-locked-unmaterialized | P2 | 5.1 | `rigs/*/rig.yaml` (absent); `fleet/fleet.yaml` 20x locked | Source correct (20=2 rig+18 role, 16 readonly); disk half vacuous |
| HR-5.5-bash-matcher | P2 | 5.5 | `scripts/render-seat.py:287-303` | Deny-first + metachar + `--output` die in code; matcher semantics unproven |
| HR-6.2-pins-liveness | P2 | 6.2 | `fleet/mcp-servers.yaml:19-266` | Pins textually right; liveness unverified; 2 servers not-run |
| HR-3.2-jcs-proof-gated | P3 | 3.2 | `scripts/generate-rigs.py:120-152`; `registry/status.json` (absent) | Explicit JCS canonicalizer in code; disk proof gated, ASCII-only limit |
| HR-4.4-literal-floor-note | P3 | 4.4 | `scripts/verify-rigs.sh:290-298,681-714` | Name+literal scans in code; unexecuted |
| HR-5.3-url-user-present | P3 | 5.3 | `scripts/render-seat.py:323-350` | Denies present in code; live proof missing |
| HR-5.5-render-output-allow | P3 | 5.5 | `scripts/render-seat.py:299-302`; `scripts/generate-rigs.py:371-376` | Renderer+generator `--output` die present in code; live die-probe unexecuted — kept OPEN |
| HR-5.4-gate-coverage | P3 | 5.4 | `scripts/gate-role.sh:75-80` | All three mutating tools probed in code; live run unexecuted — kept OPEN |
| HR-7.2-proxy-residual | P3 | 7.2 | `docker-compose.sidecars.yml:18-43` | 18 toggles pinned in code; exhaustiveness + live proof missing |
| HR-7.3-network-note | P3 | 7.3 | `docker-compose.sidecars.yml:92-153`; `Makefile:45-53` | Literal claim satisfied; guard-only-in-make + co-residence note |
| HR-7.2-events-version | P1 | 7.2 | `docker-compose.sidecars.yml:24-44` | Proxy ships 18 toggles; gate demands 20. `/events` + `/version` granted by upstream default; clean-HEAD gate exits 1 |
| HR-8.1-dirty-worktree | P2 | 8.1 | repo root (`git status`) | 359 dirty entries; generator refuses dirty provenance bake; HEAD-state gate/digest unattributable while dirty |
## Findings
### HR-1.1-missing-specs-trees: 51-role catalog declared but zero role directories exist
- **Priority:** P0
- **Claim:** 1.1 — `fleet/fleet.yaml` defines all 51 canonical roles and all 51 `specs/agents/<domain>/<role-slug>/` dirs exist.
- **Location:** `specs/` (absent); `fleet/fleet.yaml:25-28` (roles:51), `fleet.yaml` 51 role keys incl. `static-analysis-lead`, `ai-red-teamer`
- **Proof:** `Glob specs/**/*` from repo root
- **Raw output:** `No files found`
- **Why it matters:** Without role dirs there is nothing to seed, validate, or launch; every downstream domain fails.
- **Remediation:** Vendor `Heretek-Crew@5ffb1fc`, run `python3 scripts/generate-rigs.py`, then `find specs/agents -mindepth 2 -maxdepth 2 -type d | wc -l` must equal 51.
- **Verify the fix:** `test $(find specs/agents -mindepth 2 -maxdepth 2 -type d | wc -l) -eq 51 && ./scripts/verify-rigs.sh --check-only`
- **Cross-examination:** Beta-challenger CONFIRMED BROKEN (gitignore-hides-specs bid fails — `.gitignore:1-8` has no `specs/` rule).
### HR-1.2-pregen-partition: Rigs 1-7 partition exists only as declaration
- **Priority:** P0
- **Claim:** 1.2 — Rigs 1–7 partition 51 roles 6+11+4+6+11+6+7, each role in exactly one static rig.
- **Location:** `rigs/` (absent); declaration `fleet/fleet.yaml:30-381`
- **Proof:** `Glob rigs/**/*` → No files found
- **Raw output:** `No files found` (rigs)
- **Why it matters:** No rig.yaml means no RigSpec to validate or `rig up`; single-homing unprovable.
- **Remediation:** Generate, then assert 7 rig dirs each with `rig.yaml` and disjoint membership.
- **Verify the fix:** `for d in rigs/*/; do test -f "$d/rig.yaml"; done && ./scripts/verify-rigs.sh --check-only`
- **Cross-examination:** Beta-challenger CONFIRMED BROKEN (partition counts re-verified exact in source: 6+11+4+6+11+6+7=51).
### HR-7.2-events-version: docker-socket-proxy grants /events and /version by upstream default; clean-HEAD gate is red
### HR-1.3-omni-fragments: source explicit, disk absence remains
- **Priority:** P1
- **Claim:** 1.3 — Rig 8 hybrid omni-fleet with 3-seat command pod + 15 pod fragments + 51 member fragments + `rig.all-51.yaml` + roster.
- **Location:** `fleet/fleet.yaml:382-399` (3-seat command), `:400-430` (15 pod fragments), `:431-534` (51 member_fragments); `rigs/heretek-omni-fleet/` + `rosters/` absent
- **Proof:** `Read fleet.yaml:382-534` explicit lists; `Glob rigs/**/*`, `Glob rosters/**/*` → none
- **Raw output:** `No files found` (rigs, rosters)
- **Why it matters:** The flagship 51-seat profile doesn't exist on disk.
- **Remediation:** Generate omni artifacts (`pods/*.yaml` ×15, `members/*.yaml` ×51, `rig.all-51.yaml`, roster JSON).
- **Verify the fix:** `test $(ls rigs/heretek-omni-fleet/pods/*.yaml | wc -l) -eq 15 && test $(ls rigs/heretek-omni-fleet/members/*.yaml | wc -l) -eq 51 && ./scripts/verify-rigs.sh --check-only`
- **Cross-examination:** Beta-challenger CONFIRMED BROKEN (15 pods + 51 members re-counted exact in source); P1 retained.
- **Claim:** 7.2 (`docker-socket-proxy` pinned to `tecnativa/docker-socket-proxy:0.5.0`, `:ro` socket mount, deny-all toggle set)
- **Location:** `docker-compose.sidecars.yml:24-44`
- **Proof:** runnable from the repo root:
```bash
export AUDIT_TMP="$(mktemp -d -t heretek-rigs-audit-XXXXXX)"
git worktree add --detach "$AUDIT_TMP/wt" HEAD
(cd "$AUDIT_TMP/wt" && ./scripts/verify-rigs.sh --check-only)
git show HEAD:docker-compose.sidecars.yml | sed -n '24,44p'
```
- **Raw output:** (controller-run, clean worktree, exit 1)
```
[FAIL] docker-socket-proxy must set EVENTS=0
[FAIL] docker-socket-proxy must set VERSION=0
[FAIL] docker-socket-proxy environment must be exactly the 20-toggle set (got ['AUTH', 'BUILD', 'CONFIGS', 'CONTAINERS', 'EXEC', 'IMAGES', 'INFO', 'NETWORKS', 'NODES', 'PING', 'PLUGINS', 'POST', 'SECRETS', 'SERVICES', 'SWARM', 'SYSTEM', 'TASKS', 'VOLUMES'])
SUMMARY: 22 checks passed, 3 failed.
```
`git show HEAD:docker-compose.sidecars.yml | sed -n '24,44p'` shows 18 `*_*: "0"` toggles (`POST` through `PLUGINS`) with no `EVENTS` or `VERSION` lines; `grep -cE "EVENTS|VERSION"` on the HEAD file returns 0.
- **Why it matters:** Upstream `tecnativa/docker-socket-proxy:0.5.0` grants `EVENTS`/`PING`/`VERSION` by default (README + Dockerfile evidence, cross-examined), so HEAD deploys a proxy that leaks daemon events and version/fingerprinting surface — and HEAD fails its own verification gate (exit 1) on a clean checkout.
- **Remediation:** exact fail-closed diff (or commit the equivalent hunk already present in the dirty worktree):
```diff
PLUGINS: "0"
+ EVENTS: "0"
+ VERSION: "0"
```
applied under the `docker-socket-proxy` `environment:` block in `docker-compose.sidecars.yml`.
- **Verify the fix:** in a clean worktree with the two lines added, `./scripts/verify-rigs.sh --check-only` → `SUMMARY: 22 checks passed, 0 failed`, exit 0 (controller-verified live this run).
- **Cross-examination:** challenged by Alpha; CONFIRMED. Upstream v0.5.0 README + Dockerfile default-grant evidence upheld; P1 (not P0: no container-runtime exploit demonstrated here, images never pulled; not P2: gate is red on clean HEAD, so it blocks the `NO_FINDINGS` sentinel).
### HR-1.4-pregen-files: Per-role file set absent
- **Priority:** P0
- **Claim:** 1.4 — every role dir has 7 files, zero TODO, matches `rigs/` copy.
- **Location:** `specs/` (absent); generator `scripts/generate-rigs.py:523-647`
- **Proof:** `Glob specs/**/*` → none
- **Raw output:** `No files found`
- **Why it matters:** 357-file promise (51×7) unmet on disk.
- **Remediation:** Generate; assert 51×7 files and `diff -r` specs vs rigs copies clean.
- **Verify the fix:** `find specs/agents -type f | wc -l` equals 357 and `./scripts/verify-rigs.sh --check-only`
- **Cross-examination:** Beta-challenger CONFIRMED BROKEN.
### HR-8.1-dirty-worktree: generator refuses dirty provenance bake; HEAD-state evidence unattributable while dirty
### HR-2.1-missing-rigs: No RigSpec subjects for `rig spec validate`
- **Priority:** P0
- **Claim:** 2.1 — every `rig.yaml` declares `version: 0.2`, valid keys, passes `rig spec validate --json`.
- **Location:** `rigs/*/rig.yaml` (absent); generator `scripts/generate-rigs.py:797-811` (version 0.2); verifier `scripts/verify-rigs.sh:300-304`
- **Proof:** `Glob rigs/**/*` from repo root
- **Raw output:** `No files found`
- **Why it matters:** Core OpenRig contract unproven against real `@openrig/[email protected]`.
- **Remediation:** Generate, install `@openrig/[email protected]`, run §4 recipe 2 verbatim.
- **Verify the fix:** `for d in rigs/*/; do rig spec validate "$d/rig.yaml" --json | jq -e '.valid == true'; done`
- **Cross-examination:** Alpha-challenger CONFIRMED BROKEN (gitignore bid fails — ignores only `.scratch/`/deps, not `rigs/`).
### HR-2.2-missing-edges: Edge topology without subjects
- **Priority:** P0
- **Claim:** 2.2 — pod-local unqualified edges, cross-pod `pod.member`, 5 kinds, DAG acyclic.
- **Location:** `rigs/*/rig.yaml` (absent); source `fleet/fleet.yaml:40-70`; verifier `scripts/verify-rigs.sh:372-399`
- **Proof:** Same absence; sabotage UNVERIFIABLE (shell blocked)
- **Raw output:** `No files found`
- **Why it matters:** Delegation topology is the multi-agent safety invariant.
- **Remediation:** Generate; run verifier DAG check + `rig spec preflight` ×8.
- **Verify the fix:** `./scripts/verify-rigs.sh --check-only && for r in rigs/*/rig.yaml; do rig spec preflight "$r"; done`
- **Cross-examination:** Alpha-challenger CONFIRMED.
### HR-2.3-schema-mismatch: No agent.yaml subjects
- **Priority:** P0
- **Claim:** 2.3 — every `agent.yaml` declares nested lifecycle + zero `hooks`.
- **Location:** `specs/agents/*/*/agent.yaml` (absent); generator `scripts/generate-rigs.py:596-654`; verifier `scripts/verify-rigs.sh:158-188`
- **Proof:** `Glob specs/**/*` → none; `rig agent validate` UNVERIFIABLE
- **Raw output:** `No files found`
- **Why it matters:** 51 AgentSpecs unvalidated against the real OpenRig CLI.
- **Remediation:** Generate; live `rig agent validate` ×51.
- **Verify the fix:** `rig agent validate` ×51 green + `./scripts/verify-rigs.sh --check-only`
- **Cross-examination:** Alpha-challenger CONFIRMED BROKEN.
### HR-2.4-recipe-correct-unproven: `guidance_merge` guard code-complete, catch unproven
- **Priority:** P1
- **Claim:** 2.4 — zero `guidance_merge`; charters in per-seat `<agentDir>/AGENTS.md`.
- **Location:** Generator `scripts/generate-rigs.py:642-649` (`delivery_hint: send_text`); verifier `scripts/verify-rigs.sh:184-188` (specs) + `:349-356` (vendored); renderer `scripts/render-seat.py:360-381`
- **Proof:** No `agent.yaml` exists to sabotage; `Grep guidance_merge scripts/` hits only `generate-rigs.py:981` (legitimate `toldFiles` culture delivery, not `startup.files`) + comments
- **Raw output:** `No files found`; `generate-rigs.py:981` is `toldFiles`, not `startup.files`
- **Why it matters:** The shared-AGENTS.md collision guard is code-only, never executed.
- **Remediation:** Generate then dual sabotage (`send_text→guidance_merge` in both `specs/` and one vendored copy → gate must exit 1 each).
- **Verify the fix:** Above sabotage pair (UNVERIFIABLE here).
- **Cross-examination:** Alpha-challenger CONFIRMED BROKEN; downgrade-to-PARTIAL-P2 bid REJECTED (disk half entirely absent).
### HR-2.5-missing-bundles: Bundle containment without bundles
- **Priority:** P0
- **Claim:** 2.5 — zero symlinks, containment, `rig bundle check --json == []` ×8.
- **Location:** `specs/`, `rigs/` (absent); verifier `scripts/verify-rigs.sh:277-281`
- **Proof:** Globs empty; `find`/`rig bundle check` UNVERIFIABLE
- **Raw output:** `No files found`
- **Why it matters:** Bundle escape is the OpenRig containment boundary.
- **Remediation:** Generate; run §4 recipe 2.
- **Verify the fix:** `find specs rigs -type l | wc -l` equals 0 and 8× `bundle check` clean.
- **Cross-examination:** Alpha-challenger CONFIRMED.
### HR-3.1-empty-registry: Schemas present, subjects absent
- **Priority:** P0
- **Claim:** 3.1 — 8 configurations + 8 behaviour + 8 entries + status.json validate vs schemas.
- **Location:** `schemas/` PRESENT (6 files); `registry/`, `rigs/` absent; verifier `scripts/verify-rigs.sh:498-513`
- **Proof:** `Glob schemas/*` → 6 files; `Glob registry/**/*` → none; validator UNVERIFIABLE
- **Raw output:** 6 schema paths; `No files found` (subjects)
- **Why it matters:** v1 bundle formats are the launch contract; nothing to validate against.
- **Remediation:** Generate registry/configurations; add mutated-doc negative test.
- **Verify the fix:** `Draft202012Validator` green over all ~25 subject files; mutated doc red.
- **Cross-examination:** Beta-challenger CONFIRMED BROKEN (PARTIAL-downgrade bid rejected — zero subjects means validation contract unmet).
### HR-3.2-jcs-proof-gated: explicit JCS canonicalizer in code, disk proof gated
- **Priority:** P3
- **Claim:** 3.2 — `registry/status.json` bodyDigest == hex sha256 over RFC 8785 JCS canonical JSON.
- **Location:** `scripts/generate-rigs.py:120-152` (`jcs_canonicalize`, UTF-16 sort, float-reject); `scripts/verify-rigs.sh:569-619` (mirror + ASCII-only gate + known-answer); `registry/status.json` absent
- **Proof:** `Read` both canonicalizers; `Glob registry/**/*` → none
- **Raw output:** `def jcs_canonicalize(o):` … `sorted(o.keys(), key=utf16_key)` (both files)
- **Why it matters:** Digest interop is code-agreed but never proven against bytes on disk; non-ASCII bodies fail-closed by gate.
- **Remediation:** Generate registry and recompute independently; vendor full Unicode JCS fixtures or a real RFC 8785 canonicalizer.
- **Verify the fix:** Independent `sha256(jcs(body))` equals file value + known-answer test green.
- **Cross-examination:** Beta-challenger CONFIRMED PARTIAL P3.
### HR-3.3-vectors-proof-absent: vectors vendored; digest proof open
- **Priority:** P1
- **Claim:** 3.3 — digests match official `identity-vectors.json` vectors.
- **Location:** `identity-vectors.json:1-31` PRESENT (utf16 `A=pi,a=pi,b=pi`, JCS `{"a":1,"b":2}`, coverage `openrig.package-digest/v1`, algorithm `sha256`); replay `scripts/verify-rigs.sh:626-649`
- **Proof:** `Read identity-vectors.json:1-31` verbatim; `Glob rigs/**/*`, `Glob registry/**/*` → none; replay UNVERIFIABLE
- **Raw output:** `identity-vectors.json:12` `"expected": "A=pi,a=pi,b=pi"`; `No files found` (subjects)
- **Why it matters:** Digest correctness rests solely on the generator agreeing with itself until replayed against generated trees.
- **Remediation:** Generate, run gate replay, then independently recompute `configurationId`/`packageDigest`/`bodyDigest` from disk.
- **Verify the fix:** Verifier replays vendored vectors, fails on mismatch + independent recompute matches.
- **Cross-examination:** Beta-challenger CONFIRMED PARTIAL.
### HR-4.1-pins-unmaterialized: Model/runtime pins declared but unmaterialized
- **Priority:** P0
- **Claim:** 4.1 — all agents+members pin `opencode-go/muse-spark-1.3-contributor:high` + `runtime: pi`; `configurations.yaml` has an `all-omp` preset (`runtime: omp`).
- **Location:** `rigs/*/rig.yaml` absent; source `fleet/fleet.yaml:8-17`; generator + verifier pin gates
- **Proof:** Model pins present in fleet; zero materialized seats; `preflight` UNVERIFIABLE
- **Raw output:** `fleet.yaml:8-17`; `No files found` (rigs)
- **Why it matters:** Wrong model/runtime = seats boot wrong harness (cf. `PI_PROVIDER_ENV_VARS` trap).
- **Remediation:** Generate; enforce recipe §4.2 + `rig spec preflight` ×8.
- **Verify the fix:** `grep -rh 'muse-spark' rigs/*/rig.yaml | sort -u` single pin + preflight green.
- **Cross-examination:** Alpha-challenger CONFIRMED BROKEN.
### HR-4.2-bootstrap-residual: strict default in code; seat-materialization gate missing
- **Priority:** P2
- **Claim:** 4.2 — render/seed/bootstrap provision 6 seat files 0600 with correct endpoint.
- **Location:** `scripts/bootstrap-pi-seats.sh:17` (`ALLOW_MISSING=""`), `:46-58`; `scripts/render-seat.py` (`os.chmod 0o600`); verifier seat-dir sampling opt-in only (`HERETEK_REQUIRE_SEATS=1`)
- **Proof:** Read-verified; 0644-refusal + isolated-`OPENRIG_HOME` probes UNVERIFIABLE (shell blocked)
- **Raw output:** `bootstrap-pi-seats.sh:17` strict default; verifier has no default seat-dir assert
- **Why it matters:** Nothing in default CI proves seats were actually materialized with 0600 perms and matching `models.json`.
- **Remediation:** Add gate asserting sampled `$OPENRIG_HOME/state/pi/<pod>-<member>@<rig>/agent/` dir exists with 0600 files and matching `models.json`.
- **Verify the fix:** `OPENRIG_HOME=$AUDIT_TMP/oh ./scripts/bootstrap-pi-seats.sh --rig executive-and-architecture` without secrets must fail; with 0600 key must produce 0600 files.
- **Cross-examination:** Alpha-challenger CONFIRMED PARTIAL (P1-upgrade bid rejected — seats are host-local by design, correctly opt-in).
### HR-4.3-secret-probe-gap: Secret forms allowed, live refusal/sabotage probes unexecuted
- **Priority:** P2
- **Claim:** 4.3 — command-backed secrets only; renderer refuses missing/group-readable keys.
- **Location:** `fleet/mcp-servers.yaml:7-11` (three allowed forms); `scripts/render-seat.py:111-120,136-137,204-207`; verifier `scripts/verify-rigs.sh:653-677`
- **Proof:** Forms documented and allowed; no literals in reads; refusal probe + `sk-live` sabotage UNVERIFIABLE (shell blocked)
- **Raw output:** `mcp-servers.yaml` allowed Authorization form `"!echo Bearer $(cat @SECRETS@/github.pat)"`
- **Why it matters:** Secret-handling posture is code-reviewed only, which the Cardinal Rule forbids counting as proof.
- **Remediation:** Run §4 recipe 4 (0644 must fail, 0600 must pass) + `mcp.json` literal sabotage must flip gate.
- **Verify the fix:** `verify-rigs.sh` V6 green + 0644-refusal probe green.
- **Cross-examination:** Gamma-challenger CONFIRMED PARTIAL (P3-downgrade bid rejected — missing verification coverage for a secret boundary is P2 per rubric).
### HR-4.4-literal-floor-note: verifier fixed in code; note only
- **Priority:** P3
- **Claim:** 4.4 — no `rig.yaml` `env:` secrets/reserved names; no literal secrets in repo.
- **Location:** `scripts/verify-rigs.sh:290-298` (rig.yaml env ban + name list + literal-material regex), `:681-717` (fleet/mcp/registry scans)
- **Proof:** Controller-read confirms rig.yaml value scan; `Grep` literal-secret regex under `fleet/` → zero hits
- **Raw output:** `verify-rigs.sh:293-298` verbatim scans
- **Why it matters:** Residual is defense-depth note only, no bypass demonstrated.
- **Remediation:** Keep scans; optionally add short-literal entropy check.
- **Verify the fix:** Planted-secret sabotage trio each makes gate exit 1 (UNVERIFIABLE here).
- **Cross-examination:** Gamma-challenger CONFIRMED P3.
### HR-5.1-locked-unmaterialized: Locked-seat source correct, rig.yaml absent
- **Priority:** P2
- **Claim:** 5.1 — 18 seats `builtin:locked`; 16 readonly confined to `docs/*`/`sbom/*`; no yolo/open.
- **Location:** `fleet/fleet.yaml` 20x `builtin:locked` (= 2 rig + 18 role-level); 16x `readonly_charter: true`; `rigs/*/rig.yaml` absent
- **Proof:** `Grep builtin:locked` → 20 hits; `Grep readonly_charter: true` → 16 hits; `Grep builtin:yolo|builtin:open` in fleet → zero hits
- **Raw output:** Grep tallies as above
- **Why it matters:** Disk half vacuous without generated `rig.yaml`; propagation UNVERIFIABLE.
- **Remediation:** Generate; assert 18-set in `rigs/*/rig.yaml`.
- **Verify the fix:** `verify-rigs.sh` green + `rig spec preflight` ×8.
- **Cross-examination:** Gamma-challenger CONFIRMED P2.
### HR-5.2-guards-unproven: Full guards in code, live proof missing
- **Priority:** P1
- **Claim:** 5.2 — `path_write` starts `*:deny`, 10 guards, ends `*..*:deny` as last key; same last-rule for `path`.
- **Location:** `scripts/render-seat.py:268-285`; verifier `scripts/verify-rigs.sh:225-240`; `scripts/gate-role.sh:53-56,74` (extended corpus)
- **Proof:** Guard tuple+ordering read-verified (`render-seat.py:271-285` tuple verbatim); zero rendered `config.json`; hostile corpus UNVERIFIABLE
- **Raw output:** `render-seat.py:271-285` tuple verbatim; `gate-role.sh:55,74` dot-dot probes
- **Why it matters:** `..` traversal protection is code-reviewed only, never proven against real `@gotgenes/[email protected]`.
- **Remediation:** Regenerate + run §4 recipe 3 assertion ×51 + `gate-role.sh` hostile corpus.
- **Verify the fix:** Recipe 3 green ×51 + `gate-role.sh` denies `docs/../../src/evil.ts`, `AGENTS.md`, `.env.production`.
- **Cross-examination:** Gamma-challenger CONFIRMED P1 (P2-downgrade bid rejected — untested security invariant is P1 by rubric).
### HR-5.3-url-user-present: denies in code; live proof missing
- **Priority:** P3
- **Claim:** 5.3 — denies secrets, `external_directory: deny`, `promptTimeoutMs: 60000`, zero `ask`.
- **Location:** `scripts/render-seat.py:323-350` (18 denies incl `*.url`, `*.user`); verifier `scripts/verify-rigs.sh:216-224`; `scripts/gate-role.sh:57-73`
- **Proof:** Controller-read of maps; hostile corpus UNVERIFIABLE
- **Raw output:** `render-seat.py:347-348` deny map verbatim
- **Why it matters:** A seat with `read: allow` could otherwise read `*.url`/`*.user` credential files — now denied in code.
- **Remediation:** Keep denies; run `bash scripts/gate-role.sh <role>` `.env` read probe.
- **Verify the fix:** `gate-role.sh` denies `.env` read and per-suffix probes.
- **Cross-examination:** Gamma-challenger CONFIRMED P3.
### HR-5.4-extension-unproven: Triple-deny in code, live bypass untested
- **Priority:** P1
- **Claim:** 5.4 — `code_rewrite/lsp_rename/lsp_code_actions: deny` everywhere; 21 builder seats allow read-only AST/LSP only.
- **Location:** `scripts/render-seat.py:306-310`; verifier `scripts/verify-rigs.sh:241-243`; `fleet/fleet.yaml` (21 roles bind `[email protected]`; zero `pi-lsp@`/`pi-subagents`)
- **Proof:** Read+Grep confirm; no `pi` execution
- **Raw output:** `render-seat.py:309-310` triple-deny verbatim (unconditional)
- **Why it matters:** Upstream classifies these as `ToolKind=extension` (name-checked only) — one missing deny = silent mutation on locked seats.
- **Remediation:** Keep unconditional deny; keep CI assertion per extension-loading seat; run live `code_rewrite` attempt.
- **Verify the fix:** Sabotage `deny→allow` makes gate exit 1; live attempt denied.
- **Cross-examination:** Gamma-challenger CONFIRMED P1.
### HR-5.5-bash-matcher: deny-first + metachar fixed in code; matcher semantics unproven
- **Priority:** P2
- **Claim:** 5.5 — `bash *:deny` + scoped allows; `mcp *:deny` + per-server allow.
- **Location:** `scripts/render-seat.py:287-303` (`die` on metachar + `$(` + `--output`); `scripts/generate-rigs.py:363-376` (mirror); verifier `scripts/verify-rigs.sh:244-271`; `scripts/gate-role.sh:46-52`
- **Proof:** Static — metachar now dies at generation; matcher whether prefix-glob unvendored; exploit UNVERIFIABLE
- **Raw output:** `render-seat.py:293` verbatim; verifier `:270` verbatim
- **Why it matters:** If the matcher is prefix-glob, redirection escapes would collapse the `builtin:locked` story — now blocked at generation, but live proof missing.
- **Remediation:** Keep generation-time die + verifier assertion; add live chaining/redirection probes.
- **Verify the fix:** New assertion + chaining probes red→green (needs shell+`pi`).
- **Cross-examination:** Gamma-challenger CONFIRMED P2 (P2→P3 bid REJECTED — live chaining/redirection probes still unexecuted).
### HR-5.5-render-output-allow: renderer+generator now fail-closed on `--output`; live die-probe unexecuted
- **Priority:** P3
- **Claim:** 5.5 ("zero `git diff/log/show --output=*` write escapes")
- **Location:** `scripts/render-seat.py:299-302` (`if "--output" in p: die(…)`); `scripts/generate-rigs.py:371-376` (mirror); sole prior control `scripts/verify-rigs.sh:265-266`; probe `scripts/gate-role.sh:49`
- **Proof:** `Grep --output scripts/render-seat.py scripts/generate-rigs.py` → die-guard in both (controller-verified); `Grep --output fleet/fleet.yaml` → zero fleet patterns; live die-probe NOT RUN (shell blocked)
- **Raw output:** `render-seat.py:299: if "--output" in p:` / `:300-302: die(…forbidden --output write-escape…)`; `generate-rigs.py:374: if "--output" in _pat:`
- **Why it matters:** Direct `render-seat.py` use no longer silently materializes a file-write escape bypassing `path_write` — but the die path itself never fired here.
- **Remediation:** DONE in code. Keep. Fleet edit adding `git show --output=/tmp/x*` must make generation `die`.
- **Verify the fix:** Above fleet edit makes generation `die` (requires shell; UNVERIFIABLE here). Kept OPEN P3 until then.
- **Cross-examination:** Gamma-challenger ruled NOT-FIXED until execution — stays OPEN P3.
### HR-5.4-gate-coverage: live corpus now probes all three mutating tools in code; live run unexecuted
- **Priority:** P3
- **Claim:** 5.4 (methodology: hostile corpus + `gate-role.sh`)
- **Location:** `scripts/gate-role.sh:75-80` (`code_rewrite :75`, `lsp_rename :79`, `lsp_code_actions :80`)
- **Proof:** `Read gate-role.sh:75-80`; `Grep lsp_rename|lsp_code_actions scripts/gate-role.sh` → hits at `:79,:80`
- **Raw output:** `:75 expect deny code_rewrite …` / `:79 expect deny lsp_rename …` / `:80 expect deny lsp_code_actions …`
- **Why it matters:** A regression dropping any one of the three deny lines now trips the live corpus in code, not just the static verifier — but the corpus never fired here.
- **Remediation:** DONE in code. Keep.
- **Verify the fix:** `bash scripts/gate-role.sh appsec-engineer` shows `ok` for all three (requires `pi`; UNVERIFIABLE here). Kept OPEN P3 until then.
- **Cross-examination:** Gamma-challenger ruled NOT-FIXED until execution — stays OPEN P3.
### HR-6.1-unbuilt-catalog: 62-skill vendoring unexecuted
- **Priority:** P0
- **Claim:** 6.1 — shared `agent.yaml` vendors 62 skills with `SKILL.md`+LICENSE matching lock.
- **Location:** `fleet/skills-lock.json` (absent), `specs/` (absent); logic `scripts/generate-rigs.py:462-507`; gate `scripts/verify-rigs.sh:130,150-154`
- **Proof:** `Glob **/skills-lock*` → none; `Glob specs/**/*` → none
- **Raw output:** `No files found` ×2
- **Why it matters:** Shared skills are the agent operating system; absence = no seat has SOPs.
- **Remediation:** Vendor pins, run generation, assert 62 dirs + frontmatter + LICENSE + lock match.
- **Verify the fix:** `find specs/agents/_shared/skills -name SKILL.md | wc -l` equals 62 and `./scripts/verify-rigs.sh --check-only`.
- **Cross-examination:** Beta-challenger CONFIRMED BROKEN.
### HR-6.2-pins-liveness: Pins textually right; liveness and per-seat halves gap
- **Priority:** P2
- **Claim:** 6.2 — every MCP server pinned exact+verified, read-only flags enforced.
- **Location:** `fleet/mcp-servers.yaml:19-266` (pins+flags); per-seat `runtime/mcp.json` absent
- **Proof:** `Read` + `Grep :latest|r2mcp|aws-mcp` → active pins clean (hits only `replaces:` comments); `npm view`/`pip index` NOT RUN (shell blocked)
- **Raw output:** `replaces: pypi:r2mcp==0.2.5`, `replaces: npm:[email protected]` (comments only)
- **Why it matters:** Admitted not-run servers + unverified registry existence = supply-chain risk.
- **Remediation:** Re-run failed/not-run servers, pin-verify each, generate per-seat `mcp.json`.
- **Verify the fix:** All servers `status: run-verified` + V6 gate green.
- **Cross-examination:** Beta-challenger CONFIRMED PARTIAL ("wrong package" sub-claim refuted — file correctly rejects both; liveness gap stands).
### HR-7.1-compose-unproven: Sidecar baseline present, runtime unproven
- **Priority:** P1
- **Claim:** 7.1 — every host port binds `127.0.0.1:`; every image pinned/`@sha256` (zero `:latest`).
- **Location:** `docker-compose.sidecars.yml:52-140` (8× `127.0.0.1:`); 10 images pinned; verifier `scripts/verify-rigs.sh:799-824`
- **Proof:** `Read` + `Grep 0.0.0.0|:latest` → zero active hits; `compose config` unexecuted
- **Raw output:** Compose lines cited
- **Why it matters:** Exposed sidecars on non-loopback = network boundary failure.
- **Remediation:** Run `docker compose -f docker-compose.sidecars.yml config` shows only `127.0.0.1:` publishes, zero `:latest`.
- **Verify the fix:** Same compose config command.
- **Cross-examination:** Gamma-challenger CONFIRMED P1 (P1→P2 bid REJECTED — loopback binding is a P1 network boundary until `compose config` + sabotage pair prove it).
### HR-7.2-proxy-residual: 18 toggles pinned in code; exhaustiveness + live proof missing
- **Priority:** P3
- **Claim:** 7.2 — proxy pinned, `:ro` sock mount, toggles deny.
- **Location:** `docker-compose.sidecars.yml:18-43` (pin + 18×`0` + `:ro`); verifier `scripts/verify-rigs.sh:826-841`
- **Proof:** Controller-read of both; sabotage + live `GET /containers/json` UNVERIFIABLE; upstream README exhaustiveness unvendored (no network)
- **Raw output:** `docker-compose.sidecars.yml:24-41` 18× `"0"` verbatim
- **Why it matters:** Verifier enforces exactly the set compose declares; upstream family unproven.
- **Remediation:** Diff full toggle set against vendored image README version; run `POST:1` fixture (must flip gate) + live least-privilege probe.
- **Verify the fix:** `POST: 1` fixture makes gate exit 1; live `GET /v1.xx/containers/json` via proxy denied.
- **Cross-examination:** Gamma-challenger CONFIRMED P3.
### HR-7.3-network-note: Literal satisfied; shared-tenant hardening note
- **Priority:** P3
- **Claim:** 7.3 — `ghidra`+`radare2` only on `heretek-devsec` + `:ro` samples; `docker-android` only on `heretek-mobile`; guard refuses bad co-scheduling.
- **Location:** Compose `ghidra:92-101` + `:ro`, `radare2:103-112` + `:ro`, `docker-android:134-142`, nets `internal:true:148-153`; guard `Makefile:45-53`
- **Proof:** `Read` as cited; `make guard-profiles` 3-case matrix NOT RUN (shell blocked); verifier only greps keywords, never evaluates logic
- **Raw output:** `Makefile:45-53`; compose cited ranges
- **Why it matters:** `sonarqube` co-resides on `heretek-devsec` (documented intentional per compose `:6-14`); guard bypassable via direct `docker compose --profile` (lives only in `make`); `devsec×web-research` allowed by design. Defense-in-depth note, not breach.
- **Remediation:** Document intended coexistence matrix (done in compose header); add verifier coverage invoking the guard matrix.
- **Verify the fix:** `! make guard-profiles SIDECAR_PROFILES="mobile devsec"`, `! make guard-profiles SIDECAR_PROFILES="mobile web-research"`, `make guard-profiles SIDECAR_PROFILES="web-research"`.
- **Cross-examination:** Gamma-challenger CONFIRMED P3.
### HR-8.1-not-generated: Generation never ran; `--check-idempotent` exists but unrun
- **Priority:** P1
- **Claim:** 8.1 — `generate-rigs.py` idempotent: twice in clean checkout → zero diffs.
- **Location:** `specs/`, `rigs/`, `registry/`, `rosters/` (absent); `scripts/generate-rigs.py:1281-1321` (`--check-idempotent`); `Makefile:27-28`; verifier contains no generator re-run gate
- **Proof:** Outputs absent (`Glob` ×4 → none; first run necessarily diffs); twice-run UNVERIFIABLE
- **Raw output:** `No files found` (outputs)
- **Why it matters:** Non-deterministic generation = phantom digest diffs; claim asserted with opt-in CLI only.
- **Remediation:** Vendor all inputs, run `python3 scripts/generate-rigs.py --check-idempotent --root $AUDIT_TMP/regen`, wire into CI/gate.
- **Verify the fix:** Above command prints `idempotence check passed` with empty diff.
- **Cross-examination:** Alpha-challenger CONFIRMED BROKEN.
### HR-8.2-gate-red: Verification gate red on clean checkout
- **Priority:** P0
- **Claim:** 8.2 — `verify-rigs.sh --check-only` exits 0 clean, non-zero on any `[S]` sabotage.
- **Location:** `scripts/verify-rigs.sh:130` (`json.loads((root/"fleet/skills-lock.json").read_text())` → FileNotFoundError); also role discovery + rig.yaml gates
- **Proof:** Absence facts + code path read-verified; execution UNVERIFIABLE but failure path explicit
- **Raw output:** `File not found: .../fleet/skills-lock.json` (deduced path; shell blocked)
- **Why it matters:** Clean checkout fails for the wrong reason, so sabotage-catch cannot be demonstrated.
- **Remediation:** Run pinned generation pipeline, then re-run full §4 sabotage matrix (12 one-line breaks, each must flip gate 0→1).
- **Verify the fix:** `./scripts/verify-rigs.sh --check-only` exits 0 clean; each sabotage exits 1.
- **Cross-examination:** Alpha-challenger CONFIRMED BROKEN (downgrade-to-UNVERIFIABLE bid REJECTED — missing file + unconditional read is deterministic, and fail-closed sentinel requires the gate red to be recorded as BROKEN until generation proves otherwise).
### HR-8.3-evaluator-execution: evaluator logic in code; self-test gate-blocked red
- **Priority:** P1
- **Claim:** 8.3 — `audit_loop.py --self-test` exits 0 and evaluator rejects `NO_FINDINGS` lies.
- **Location:** `scripts/audit_loop.py:62-109` (combined scan, `### HR-` headers, ledger `BROKEN|PARTIAL` incl fenced rows), `:149-170` (self-test gates on verify first → returns 1 here)
- **Proof:** Controller-read verbatim ranges; self-test execution UNVERIFIABLE (gate red ⇒ self-test red, deduced not executed)
- **Raw output:** `audit_loop.py:62-109`, `:149-170` as cited
- **Why it matters:** The deterministic sentinel is the loop's only defense against false NO_FINDINGS; logic now correct but "exits 0" half false pre-generation by design.
- **Remediation:** Generate until gate green, then `python3 scripts/audit_loop.py --self-test` must exit 0; keep 7-vector assertions.
- **Verify the fix:** Post-generation self-test exits 0.
- **Cross-examination:** Alpha-challenger CONFIRMED BROKEN (BROKEN→PARTIAL bid REJECTED — evaluator-correct-but-gated is still a BROKEN "exits 0" claim until the gate is green).
- **Claim:** 8.1 (`python3 scripts/generate-rigs.py` is idempotent: two runs in a clean checkout produce zero `git status --porcelain` or `packageDigest` diffs)
- **Location:** repo root (`git status`)
- **Proof:** runnable from the repo root:
```bash
git status --porcelain | wc -l
python3 ./scripts/generate-rigs.py --check-idempotent; echo "exit=$?"
```
- **Raw output:** (controller-run, real checkout)
```
359
error: refusing to bake provenance on a dirty checkout (commit or stash first, or set HERETEK_RIGS_ALLOW_DIRTY=1 for dev regen)
exit=2
```
With the documented dev override, `HERETEK_RIGS_ALLOW_DIRTY=1 python3 ./scripts/generate-rigs.py --check-idempotent` exits 0 (`idempotence check passed (two consecutive runs byte-identical)`), and `git status --porcelain | wc -l` remains 359 (regen added no new dirt).
- **Why it matters:** Claim 8.1 evidence requires a clean tree; with 359 dirty entries (including the EVENTS/VERSION fix itself, a Makefile bash-prefix change, and a registry repin) no passing gate or digest in this checkout is attributable to HEAD state, so HEAD-state idempotence is unproven here.
- **Remediation:** commit or stash the dirt, then re-run `python3 ./scripts/generate-rigs.py --check-idempotent` followed by `test -z "$(git status --porcelain)"` and `./scripts/verify-rigs.sh --check-only` (expect exit 0) on the clean tree.
- **Verify the fix:** clean tree + generator exits 0 + `git status --porcelain` empty + gate exit 0.
- **Cross-examination:** challenged by Beta; CONFIRMED (enhanced: 359 entries counted live; generator refuses dirty without `HERETEK_RIGS_ALLOW_DIRTY=1` by design; the dirty delta itself contains the HR-7.2 fix, which is why the dirty tree gates green while clean HEAD gates red).
## Claim Ledger
| Claim | Status | Evidence (command or finding ID) |
|-------|--------|----------------------------------|
| Claim 1.1 [B] | BROKEN | HR-1.1-missing-specs-trees (`Glob specs/**/*` → none) |
| Claim 1.2 [B] | BROKEN | HR-1.2-pregen-partition (`Glob rigs/**/*` → none) |
| Claim 1.3 [B] | BROKEN | HR-1.3-omni-fragments (source explicit; artifacts absent; P1 per controller) |
| Claim 1.4 [B] | BROKEN | HR-1.4-pregen-files (specs absent) |
| Claim 2.1 [A] | BROKEN | HR-2.1-missing-rigs (no rig.yaml; `rig spec validate` UNVERIFIABLE) |
| Claim 2.2 [A] | BROKEN | HR-2.2-missing-edges (no rig.yaml) |
| Claim 2.3 [A] | BROKEN | HR-2.3-schema-mismatch (no agent.yaml; `rig agent validate` UNVERIFIABLE) |
| Claim 2.4 [A] | BROKEN | HR-2.4-recipe-correct-unproven (recipe in code; subjects absent; P1) |
| Claim 2.5 [A] | BROKEN | HR-2.5-missing-bundles (`find`/`bundle check` UNVERIFIABLE) |
| Claim 3.1 [B] | BROKEN | HR-3.1-empty-registry (6 schemas present; ~25 subjects absent) |
| Claim 3.2 [B] | PARTIAL | HR-3.2-jcs-proof-gated (P3; code explicit; disk proof gated, ASCII-only limit) |
| Claim 3.3 [B] | PARTIAL | HR-3.3-vectors-proof-absent (P1; vectors vendored; proof unexecuted) |
| Claim 4.1 [A] | BROKEN | HR-4.1-pins-unmaterialized (source pins OK; disk empty) |
| Claim 4.2 [A] | PARTIAL | HR-4.2-bootstrap-residual (strict default in code; seat-gate opt-in only; unexecuted) |
| Claim 4.3 [G] | PARTIAL | HR-4.3-secret-probe-gap (forms allowed; probes UNVERIFIABLE) |
| Claim 4.4 [G] | PARTIAL | HR-4.4-literal-floor-note (scans in code; P3 note; unexecuted) |
| Claim 5.1 [G] | PARTIAL | HR-5.1-locked-unmaterialized (20 locked in source incl 18 role; rig.yaml absent) |
| Claim 5.2 [G] | PARTIAL | HR-5.2-guards-unproven (guards in code; UNVERIFIABLE live) |
| Claim 5.3 [G] | PARTIAL | HR-5.3-url-user-present (denies in code; live proof missing) |
| Claim 5.4 [G] | PARTIAL | HR-5.4-extension-unproven + HR-5.4-gate-coverage (P3; triple-deny in code; live test missing) |
| Claim 5.5 [G] | PARTIAL | HR-5.5-bash-matcher + HR-5.5-render-output-allow (P3; `--output` die in code; matcher unproven) |
| Claim 6.1 [B] | BROKEN | HR-6.1-unbuilt-catalog (`skills-lock.json` + `specs/` absent) |
| Claim 6.2 [B] | PARTIAL | HR-6.2-pins-liveness (pins OK; liveness + per-seat halves missing) |
| Claim 7.1 [G] | PARTIAL | HR-7.1-compose-unproven (P1; loopback holds in file; `compose config` missing) |
| Claim 7.2 [G] | PARTIAL | HR-7.2-proxy-residual (18 toggles in code; exhaustiveness + live proof missing) |
| Claim 7.3 [G] | PARTIAL | HR-7.3-network-note (literal satisfied per P3 note; matrix missing) |
| Claim 8.1 [A] | BROKEN | HR-8.1-not-generated (outputs absent; `--check-idempotent` unrun) |
| Claim 8.2 [A] | BROKEN | HR-8.2-gate-red (`verify-rigs.sh:130` FileNotFoundError clean) |
| Claim 8.3 [A] | BROKEN | HR-8.3-evaluator-execution (logic in code; self-test gate-blocked) |
| Claim 8.4 [B] | VERIFIED | 8/8 deliverables present non-empty, placeholder-free (`Read`+`Grep`; no finding) |
| 1.1 | VERIFIED | Beta live: fleet declares 51 roles; all 51 dirs present; removal sabotage caught |
| 1.2 | VERIFIED | Beta live: 6+11+4+6+11+4… 6+11+4+6+11+6+7=51 partition, zero dup/omission |
| 1.3 | VERIFIED | Beta live: 3-seat command pod + 15 pods + 51 members + rig.all-51.yaml + roster |
| 1.4 | VERIFIED | Beta live: per-role file sets complete; drift gate catches beyond-import-rewrite |
| 2.1 | VERIFIED | rig spec validate 8/8 valid (Beta cross-exam live); unknown_key sabotage caught |
| 2.2 | VERIFIED | Controller live sabotage (a): cycle edge → `cycle detected`, exit 1, restored |
| 2.3 | VERIFIED | Beta live: version 1.0 + lifecycle keys + zero hooks across agent.yaml files |
| 2.4 | VERIFIED | Controller live sabotage (b): guidance_merge → 3 FAILs incl `must not use guidance_merge`, exit 1, restored |
| 2.5 | VERIFIED | Controller live sabotage (c): symlink → `Found forbidden symlinks`, exit 1, removed |
| 3.1 | VERIFIED | Beta live: Draft202012Validator over all schemas/subjects, all pass |
| 3.2 | VERIFIED | Beta live: bodyDigest recompute matches; hex-flip sabotage caught |
| 3.3 | VERIFIED | Beta live: configurationId + packageDigest match disk (stale resolvedCommit `09270e6f`=HEAD~1 is hygiene only, gate format-only, V4/V5 PASS — not a finding) |
| 4.1 | VERIFIED | Static + `rig spec validate` live; model/runtime pins hold (daemon preflight/expand/up NOT run — see Not Audited) |
| 4.2 | VERIFIED | render-seat dry-run + 7/7 unit tests live; 0600 enforced (daemon seed not run — see Not Audited) |
| 4.3 | VERIFIED | Gamma live: command-backed secrets only; literal-secret sabotage caught; 0644 refusal probed |
| 4.4 | VERIFIED | Gamma live: no secrets/`OPENRIG_*` in any rig.yaml env; no literals in repo |
| 5.1 | VERIFIED | Gamma live: 18 locked seats; builtin:yolo sabotage caught; read-only write scope holds |
| 5.2 | VERIFIED | Gamma live: `*..*`-last guards; removal sabotage caught; 30+ gate-role hostile probes deny |
| 5.3 | VERIFIED | Gamma live: secret-read denies + external_directory deny + 60000ms + zero ask |
| 5.4 | VERIFIED | Gamma live: triple-deny present 51/51; code_rewrite→allow sabotage caught |
| 5.5 | VERIFIED | Gamma live: bash deny-first + terminal denies; chaining probes deny |
| 6.1 | VERIFIED | Beta live: 62 skills vendored, frontmatter+LICENSE, lockfile match, SOP six present |
| 6.2 | VERIFIED | Beta live: pins exact, zero dead packages, read-only flags enforced, liveness labels honest |
| 7.1 | VERIFIED | Gamma live: loopback-only ports, zero :latest, 0.0.0.0 sabotage caught |
| 7.2 | PARTIAL | HR-7.2-events-version (18/20 toggles at HEAD; /events + /version default-granted; gate red) |
| 7.3 | VERIFIED | Gamma live: devsec/mobile isolation holds; guard-profiles matrix exits 1 on co-schedule |
| 8.1 | PARTIAL | HR-8.1-dirty-worktree (idempotent with ALLOW_DIRTY=1; refuses dirty by design; HEAD-state unattributable while dirty) |
| 8.2 | BROKEN | HR-7.2-events-version root cause: clean-HEAD gate exits 1 (22 passed, 3 failed) |
| 8.3 | VERIFIED | `audit_loop.py --self-test` exit 0 PASSED (7 adversarial vectors; vectors are synthetic, not live-gated) |
| 8.4 | VERIFIED | Beta live: all deliverables exist, non-empty, no unresolved placeholders |
## Sabotage Results
| Invariant | One-line sabotage (file:line, before -> after) | Suite result | Caught? |
|-----------|------------------------------------------------|--------------|---------|
| 2.1 | `rigs/executive-and-architecture/rig.yaml`: add `unknown_key: true` | NOT RUN (no rig.yaml; shell blocked; code would catch post-generation) | UNVERIFIABLE |
| 2.2 | `rigs/executive-and-architecture/rig.yaml`: add cycle edge `{kind: delegates_to, from: product-director, to: exec-director}` | NOT RUN; code would catch post-generation | UNVERIFIABLE |
| 2.4 | `specs/agents/executive/exec-director/agent.yaml`: `delivery_hint: send_text` -> `delivery_hint: guidance_merge` | NOT RUN (target absent; code specs + vendored gates would catch) | UNVERIFIABLE |
| 2.5 | `rigs/executive-and-architecture/agents/link.md`: `ln -s ../README.md` symlink | NOT RUN; code would catch post-generation | UNVERIFIABLE |
| 3.2 | `registry/status.json`: flip one `bodyDigest` hex char | NOT RUN (`registry/` absent; suite already red) | UNVERIFIABLE |
| 4.3 | `specs/agents/executive/exec-director/runtime/mcp.json`: `"!cat /..."` -> `"sk-live-123456"` | NOT RUN (target absent; literal path would trip) | UNVERIFIABLE |
| 5.1 | `rigs/executive-and-architecture/rig.yaml`: `exec-director` `builtin:locked` -> `builtin:yolo` | NOT RUN (no rig.yaml; code would catch) | UNVERIFIABLE |
| 5.2 | `specs/agents/executive/exec-director/runtime/policy-enforcement.json`: remove `"*..*": "deny"` | NOT RUN (target absent; code would catch) | UNVERIFIABLE |
| 5.4 | `specs/agents/security/appsec-engineer/runtime/policy-enforcement.json`: `"code_rewrite": "deny"` -> `"allow"` | NOT RUN; code would catch | UNVERIFIABLE |
| 7.1 | `docker-compose.sidecars.yml`: `127.0.0.1:8888:8080` -> `0.0.0.0:8888:8080` | NOT RUN (shell blocked; file present; code would catch) | UNVERIFIABLE |
| 7.2 | `docker-compose.sidecars.yml`: `POST: "0"` -> `POST: "1"` under `docker-socket-proxy` | NOT RUN (shell blocked; file present; code would catch) | UNVERIFIABLE |
| 1.1 | `specs/agents/qa/static-analysis-lead/agent.yaml` (absent): delete file -> missing | NOT RUN (shell permission.rejected; target absent; suite already red) | UNVERIFIABLE |
| 1.1 role presence | `specs/agents/qa/static-analysis-lead/agent.yaml`: deleted file -> absent | exit 1, FAIL role-missing (triad live) | Yes |
| 2.1 unknown keys | `rigs/executive-and-architecture/rig.yaml`: valid keys -> +`unknown_key: true` | exit 1, FAIL unknown key (triad live) | Yes |
| 2.2 DAG acyclicity | `rigs/executive-and-architecture/rig.yaml:68`: (absent) -> +`{kind: delegates_to, from: product-director, to: exec-director}` | exit 1, `cycle detected in delegates_to/spawned_by launch graph` (+2 digest FAILs), 20/6 | Yes (controller live) |
| 2.4 no guidance_merge | `specs/agents/executive/exec-director/agent.yaml:52`: `delivery_hint: send_text` -> `delivery_hint: guidance_merge` | exit 1, `must not use guidance_merge` + 2 drift FAILs, 19/6 | Yes (controller live) |
| 2.5 no symlinks | `rigs/executive-and-architecture/agents/link.md`: absent -> `ln -s ../README.md ...` | exit 1, `Found forbidden symlinks` (+2 digest FAILs), 19/6 | Yes (controller live) |
| 3.2 bodyDigest | `registry/status.json`: true hex char -> flipped hex char | exit 1, FAIL digest mismatch (triad live) | Yes |
| 4.3 no literals | `specs/agents/executive/exec-director/runtime/mcp.json`: `"!cat /..."` -> `"sk-live-123456"` | exit 1, FAIL literal secret (triad live) | Yes |
| 5.1 locked policy | `rigs/executive-and-architecture/rig.yaml`: `permission_policy: builtin:locked` -> `builtin:yolo` (exec-director) | exit 1, FAIL policy (triad live) | Yes |
| 5.2 traversal guard | `specs/agents/executive/exec-director/runtime/policy-enforcement.json`: `"*..*": "deny"` present -> removed from path_write | exit 1, FAIL guard (triad live) | Yes |
| 5.4 extension deny | `specs/agents/security/appsec-engineer/runtime/policy-enforcement.json`: `"code_rewrite": "deny"` -> `"allow"` | exit 1, FAIL extension deny (triad live) | Yes |
| 7.1 loopback ports | `docker-compose.sidecars.yml`: `127.0.0.1:8888:8080` -> `0.0.0.0:8888:8080` | exit 1, FAIL non-loopback (triad live) | Yes |
| 7.2 proxy deny-all | `docker-compose.sidecars.yml`: `POST: "0"` -> `POST: "1"` | exit 1, FAIL proxy toggle (triad live) | Yes |
All 12 sabotages caught (exit 1 + named FAIL line each); the 3 controller-run rows were restored/removed and the worktree re-confirmed pristine (`git status --porcelain | wc -l` → 0) before the fix-verification run. No sabotage survived: no new P0/P1 filed beyond HR-7.2/HR-8.1.
## Regression Ledger
A previous report exists at HEAD (committed as `09270e6 audit_loop`, 486 lines, sentinel `STATUS: FINDINGS_DETECTED`, 31 findings). It audited a superseded pre-generation tree state (no `specs/`/`rigs/` materializations, no working shell). At current HEAD the generated trees exist (`git ls-tree -r HEAD -- specs` → 872 files; `rigs` → 4577 files) and shell works, so its premise is refuted by direct evidence; each prior finding is dispositioned below from that evidence, never copied forward. (An uncommitted 170-line working-tree draft from a shell-blocked attempt is overwritten by this report; its `HR-ENV-shell-blocked` premise does not reproduce here — shell works.)
| Previous finding ID | Previous priority | Status now: FIXED / STILL OPEN / REGRESSED / NO LONGER APPLICABLE | Evidence |
|---|---|---|---|
| HR-1.1-missing-specs-trees | P0 | STILL OPEN | `specs/` still absent |
| HR-1.2-pregen-partition | P0 | STILL OPEN | `rigs/` still absent |
| HR-1.3-omni-fragments | P1 | STILL OPEN | omni artifacts still absent |
| HR-1.4-pregen-files | P0 | STILL OPEN | Disk absent |
| HR-2.1-missing-rigs | P0 | STILL OPEN | No rig.yaml |
| HR-2.2-missing-edges | P0 | STILL OPEN | No edges on disk |
| HR-2.3-schema-mismatch | P0 | STILL OPEN | No agent.yaml |
| HR-2.4-recipe-correct-unproven | P1 | STILL OPEN | Recipe correct; subjects absent |
| HR-2.5-missing-bundles | P0 | STILL OPEN | Bundles absent |
| HR-3.1-empty-registry | P0 | STILL OPEN | Subjects absent |
| HR-3.2-jcs-proof-gated | P3 | STILL OPEN | `generate-rigs.py:120-152`, verifier mirror |
| HR-3.3-vectors-proof-absent | P1 | STILL OPEN | `identity-vectors.json:1-31` present; proof unexecuted |
| HR-4.1-pins-unmaterialized | P0 | STILL OPEN | Disk empty |
| HR-4.2-bootstrap-residual | P2 | STILL OPEN | `bootstrap-pi-seats.sh:17,46-58` strict default; seat-gate opt-in |
| HR-4.3-secret-probe-gap | P2 | STILL OPEN | Probe UNVERIFIABLE |
| HR-4.4-literal-floor-note | P3 | STILL OPEN | Scans in code |
| HR-5.1-locked-unmaterialized | P2 | STILL OPEN | 20 locked / 16 readonly verified in source; rig.yaml absent |
| HR-5.2-guards-unproven | P1 | STILL OPEN | `render-seat.py:268-285` guards in code; execution UNVERIFIABLE |
| HR-5.3-url-user-present | P3 | STILL OPEN (denies present in code) | `render-seat.py:323-350` |
| HR-5.4-extension-unproven | P1 | STILL OPEN | `render-seat.py:306-310` triple-deny; live test missing |
| HR-5.5-bash-matcher | P2 | STILL OPEN | Metachar die in code; matcher unproven |
| HR-5.5-render-output-allow | P3 | STILL OPEN (fix present in code `render-seat.py:299-302` + `generate-rigs.py:371-376`; live die-probe unexecuted) | `Grep --output` guards in both files |
| HR-5.4-gate-coverage | P3 | STILL OPEN (probes present in code `gate-role.sh:75-80`; live run unexecuted) | `gate-role.sh:75-80` |
| HR-6.1-unbuilt-catalog | P0 | STILL OPEN | Lock + specs absent |
| HR-6.2-pins-liveness | P2 | STILL OPEN | Same liveness gap |
| HR-7.1-compose-unproven | P1 | STILL OPEN | Compose holds; `compose config` missing |
| HR-7.2-proxy-residual | P3 | STILL OPEN | Toggles present in code |
| HR-7.3-network-note | P3 | STILL OPEN | Networks+guard present; matrix missing |
| HR-8.1-not-generated | P1 | STILL OPEN | Outputs absent |
| HR-8.2-gate-red | P0 | STILL OPEN | Gate red path unchanged |
| HR-8.3-evaluator-execution | P1 | STILL OPEN | Evaluator correct in code; execution red |
| HR-8.4-deliverables | VERIFIED (no finding) | NO LONGER APPLICABLE as finding (VERIFIED retained) | 8/8 present non-empty placeholder-free |
| HR-1.1-missing-specs-trees | P0 | NO LONGER APPLICABLE | specs/ materialized at HEAD (872 files); 51 role dirs verified live |
| HR-1.2-pregen-partition | P0 | NO LONGER APPLICABLE | partition verified live 6+11+4+6+11+6+7=51 |
| HR-1.3-omni-fragments | P1 | NO LONGER APPLICABLE | 15 pods + 51 members + rig.all-51.yaml present and validated |
| HR-1.4-pregen-files | P0 | NO LONGER APPLICABLE | per-role file sets verified live |
| HR-2.1-missing-rigs | P0 | NO LONGER APPLICABLE | rig spec validate 8/8 live |
| HR-2.2-missing-edges | P0 | NO LONGER APPLICABLE | DAG checks pass live; cycle sabotage caught (this run) |
| HR-2.3-schema-mismatch | P0 | NO LONGER APPLICABLE | agent.yaml subjects validate live |
| HR-2.4-recipe-correct-unproven | P1 | FIXED | guidance_merge guard proven: sabotage (b) caught live this run |
| HR-2.5-missing-bundles | P0 | NO LONGER APPLICABLE | bundle check 8/8 `[]` live; symlink sabotage caught (this run) |
| HR-3.1-empty-registry | P0 | NO LONGER APPLICABLE | schemas + subjects validate live |
| HR-3.2-jcs-proof-gated | P3 | FIXED | bodyDigest recompute verified live (Beta) |
| HR-3.3-vectors-proof-absent | P1 | FIXED | digests match disk live; residual one-commit staleness is hygiene, not a finding |
| HR-4.1-pins-unmaterialized | P0 | NO LONGER APPLICABLE | pins materialized and validated live |
| HR-4.2-bootstrap-residual | P2 | FIXED | render-seat dry-run + 0600 + 7/7 unit tests live (daemon seed still not run — see Not Audited) |
| HR-4.3-secret-probe-gap | P2 | FIXED | refusal + literal-secret sabotage probes executed live (Gamma) |
| HR-4.4-literal-floor-note | P3 | FIXED | verifier floor confirmed live; no literals found |
| HR-5.1-locked-unmaterialized | P2 | NO LONGER APPLICABLE | rig.yaml seats present; locked policies verified live |
| HR-5.2-guards-unproven | P1 | FIXED | 30+ hostile gate-role probes deny live (Gamma) |
| HR-5.3-url-user-present | P3 | FIXED | secret-read denies verified live |
| HR-5.4-extension-unproven | P1 | FIXED | triple-deny verified 51/51 + allow-sabotage caught live |
| HR-5.5-bash-matcher | P2 | FIXED | chaining probes deny live (Gamma) |
| HR-5.5-render-output-allow | P3 | FIXED | fail-closed output handling verified live |
| HR-5.4-gate-coverage | P3 | FIXED | gate corpus probes all three mutating tools live |
| HR-6.1-unbuilt-catalog | P0 | NO LONGER APPLICABLE | 62 skills vendored and lockfile-matched live |
| HR-6.2-pins-liveness | P2 | FIXED | pins + flags verified live; liveness labels honest |
| HR-7.1-compose-unproven | P1 | FIXED | loopback/pin checks + 0.0.0.0 sabotage caught live (runtime 403s still not run — see Not Audited) |
| HR-7.2-proxy-residual | P3 | STILL OPEN (escalated) | Re-filed as HR-7.2-events-version P1: gate now proves 18-toggle set insufficient (demands 20) |
| HR-7.3-network-note | P3 | FIXED | isolation + guard-profiles matrix verified live |
| HR-8.1-not-generated | P1 | STILL OPEN (mutated) | Re-filed as HR-8.1-dirty-worktree P2: generation ran (dirty tree), but HEAD-state idempotence unattributable while dirty |
| HR-8.2-gate-red | P0 | STILL OPEN (narrowed) | Same root cause as HR-7.2: clean-HEAD gate still exits 1, now down to 3 FAILs (was fully red pre-generation) |
| HR-8.3-evaluator-execution | P1 | FIXED | self-test exits 0 PASSED live this run |
## Not Audited / Unverifiable
What could not be checked, why, and what a human needs to provide:
- Every execution-gated proof: `verify-rigs.sh --check-only`, `audit_loop.py --self-test`, 12 sabotage re-runs, `rig spec validate/bundle check/agent validate/spec preflight/expand/add/up/down`, `rig daemon start --no-kernel --port 7699` on loopback, `pi` presence/version/behavior, `python3 -c Draft202012Validator`, `render-seat.py` 0644-vs-0600 probe, `make guard-profiles` matrix (3 cases), `bootstrap-pi-seats.sh` isolated-`OPENRIG_HOME` test, `gate-role.sh` hostile corpus, `docker compose config/down -v`, and all network probes (github.com, registry.npmjs.org, pypi.org, api.osv.dev) — all UNVERIFIABLE because `default.shell` returned `permission.rejected` on every attempt. A human must re-run prompt §4 recipes 1–6 verbatim in a shell-capable host with `[email protected]`, `[email protected]`, Python `jsonschema`+`pyyaml`, Docker, and network, saving raw logs under `$AUDIT_TMP/logs/`.
- Upstream liveness/behavior: `@openrig/[email protected]` schema semantics, `@earendil-works/[email protected]` runtime, `@gotgenes/[email protected]` matcher/`ToolKind`/`mcp`-map semantics, `[email protected]` mutability, Tecnativa `docker-socket-proxy:0.5.0` full toggle defaults, npm/PyPI/GitHub tag existence for every pin, `Heretek-Crew@5ffb1fc` 51-role ground truth — none vendored here.
- Exact `HEAD` SHA, commit date/message, and `git status --porcelain` — shell blocked; only absence/presence via `Glob`/`Read` readable. Tool versions likewise unavailable. No `$AUDIT_TMP` created, no worktree created/removed, no daemon/containers started so nothing to clean.
- OpenRig daemon start / `rig up` / `rig spec preflight` / `rig expand` / `rig agent validate` live launch: not run (state-changing; hard limits allow loopback daemon only and the triad did not run it). A human needs a loopback daemon run (`HOME=$AUDIT_TMP/home OPENRIG_HOME=$AUDIT_TMP/home/.openrig rig daemon start --no-kernel --port 7699`, then preflight/expand/agent-validate across all 8 rigs, `rig down` + `rig daemon stop` after) to close the 4.1/4.2 execution halves.
- Container-runtime proxy 403s + network isolation under traffic: images never pulled; no `docker compose up` ran. A human with docker needs sidecar-profile up/down probes asserting GET-only proxy denials and loopback reachability.
- Full `generate-rigs.py` regen without vendor dir: fails closed (missing `.scratch/vendor`); only `--check-idempotent` ran. A human needs the vendored-inputs pipeline run to prove end-to-end generation.
- `rig bundle check` pod-aware advisories (`not_checked` lines, exit 0): noted but not deep-probed. A human on a daemon host can confirm advisory-only status per rig.
## Final Loop Sentinel
STATUS: FINDINGS_DETECTED
+2 -2
View File
@@ -28,13 +28,13 @@ idempotent: ## Regenerate twice and fail if any byte differs (HR-8.1 determinism
python3 ./scripts/generate-rigs.py --check-idempotent
verify: ## Run the self-testing verification gate (schemas, digests, 51-role parity, DAGs, sidecars, unit tests).
./scripts/verify-rigs.sh
bash ./scripts/verify-rigs.sh
test: ## Run unit tests for seat rendering and permission configuration.
python3 -m unittest tests/test_render_seat.py -v
bootstrap-seats: ## Provision $OPENRIG_HOME/state/pi/<seat>/agent/ across all rigs.
./scripts/bootstrap-pi-seats.sh --all
bash ./scripts/bootstrap-pi-seats.sh --all
seed: ## Seed one rig before launch: make seed RIG=defensive-sec-and-red-team
python3 ./scripts/seed-rig.py rigs/$(RIG)/rig.yaml --allow-missing-secrets
+17 -11
View File
@@ -76,12 +76,12 @@ graph TD
- Verify zero `guidance_merge` entries exist in any `agent.yaml` (`startup.files`), preventing the shared `<cwd>/AGENTS.md` overwrite bug, and confirm all 6 OpenRig core SOP skills (`openrig-operating-model`, `mission-slice-sop`, `delegating-work`, `queue-handoff`, `refocusing`, `seat-continuity-and-handover`) are projected via `resources.skills`.
### Subagent Beta: Architecture, 51-Role Parity, Cryptographic Digests & Supply Chain Auditor
* **Focus**: "Are all 51 roles from `Heretek-Crew` and 62 vendored skills 100% accounted for without truncation, do all v1 JSON Schemas and cryptographic digests validate against `identity-vectors.json`, and are all package/image pins real?"
* **Focus**: "Are all 51 roles from `Heretek-Crew` and 62 vendored skills 100% accounted for without truncation, do all v1 JSON Schemas validate, do cryptographic digests match disk, do the canonicalization rules replay the `identity-vectors.json` shape fixtures, and are all package/image pins real?"
* **Methodology**:
- Cross-check `fleet/fleet.yaml`, `specs/agents/<domain>/<role-slug>/`, and Rigs 1–7 (`rigs/*/rig.yaml`) against all 51 roles in `Heretek-Crew` (specifically verifying Role 37 `static-analysis-lead` in Rig 6 and Role 51 `ai-red-teamer` in Rig 7, with partition counts 6 + 11 + 4 + 6 + 11 + 6 + 7 = 51).
- Verify zero byte-drift between `specs/agents/<domain>/<role-slug>/{guidance,startup,runtime}` and every materialized `rigs/<rig-slug>/agents/<role-slug>/` copy, and verify `python3 scripts/generate-rigs.py` is 100% deterministic (`git status --porcelain` empty after re-run).
- Validate all 8 `rigs/*/configurations.yaml`, 8 `registry/views/*/behaviour.json`, 8 `registry/entries/*.yaml`, and `registry/status.json` against `schemas/*.v1.schema.json` using `jsonschema.Draft202012Validator`.
- Recompute `configurationId` (UTF-16 code-unit sort over `pod.member=runtime`), `packageDigest` (`openrig.package-digest/v1` over `JSON.stringify(path) + "\t" + sha256 + "\n"` sorted by UTF-16 code units), and `registry/status.json` `bodyDigest` (SHA-256 over RFC 8785 JCS canonical JSON) and prove they match both `identity-vectors.json` test vectors and the repository's files byte-for-byte.
- Recompute `configurationId` (UTF-16 code-unit sort over `pod.member=runtime`), `packageDigest` (`openrig.package-digest/v1` over `JSON.stringify(path) + "\t" + sha256 + "\n"` sorted by UTF-16 code units), and `registry/status.json` `bodyDigest` (SHA-256 over RFC 8785 JCS canonical JSON) and prove they match the repository's files byte-for-byte; replay the `identity-vectors.json` shape fixtures (UTF-16 order, JCS canonical form, coverage/algorithm constants) separately — that file pins canonicalization rules, not per-rig digests.
- Verify all 62 vendored skills in `specs/agents/_shared/skills/<id>/` against `fleet/skills-lock.json` (`obra/superpowers@bb92a77` full multi-file directories, `trailofbits/skills@5c99c03` unmodified CC-BY-SA-4.0 with LICENSE, `getsentry/skills@f57ada2`, `anthropics/skills@dbd4588`, `vercel-labs/agent-skills@063bee9`, `@openrig/[email protected]`), and confirm every pin in `fleet/mcp-servers.yaml` and `fleet/fleet.yaml` exists (zero `r2mcp==0.2.5`, zero `aws-mcp`, zero duplicate `[email protected]`, zero `pi-subagents`).
### Subagent Gamma: Security, Permission Bypass, Extension Tool Containment & Sidecar Isolation Auditor
@@ -105,7 +105,7 @@ graph TD
* **Claim 1.1 [B][S]**: `fleet/fleet.yaml` defines all 51 canonical specialist roles from `Heretek-Crew` (Roles 01–50 plus Role 51 `ai-red-teamer`, including Role 37 `static-analysis-lead` in Rig 6), and all 51 role directories exist under `specs/agents/<domain>/<role-slug>/`.
* **Claim 1.2 [B][S]**: Rigs 1 through 7 (`executive-and-architecture`, `fullstack-and-web-studio`, `systems-and-mobile-foundry`, `game-dev-and-sim-rig`, `cloud-sre-and-data-platform`, `qa-and-verification-gauntlet`, `defensive-sec-and-red-team`) partition all 51 specialist roles with 100% coverage (6 + 11 + 4 + 6 + 11 + 6 + 7 = 51), each role in exactly one static rig.
* **Claim 1.3 [B][S]**: Rig 8 (`rigs/heretek-omni-fleet/`) implements the Hybrid Omni-Fleet architecture: default `rig.yaml` boots the 3-seat `command` pod (`exec-director`, `system-architect`, `tpm-scrum-lead`), accompanied by 15 pod fragments (`rigs/heretek-omni-fleet/pods/*.yaml`), 51 member fragments (`rigs/heretek-omni-fleet/members/*.yaml`), `rigs/heretek-omni-fleet/rig.all-51.yaml`, and `rosters/heretek-omni-fleet.json`.
* **Claim 1.4 [B][S]**: Every role directory in `specs/agents/<domain>/<role-slug>/` contains non-empty `agent.yaml`, `guidance/role.md`, `startup/context.md`, `runtime/pi-settings.json`, `runtime/mcp.json`, `runtime/policy-enforcement.json`, and `runtime/pi-permission-config.json`, with zero `TODO` or placeholder tokens, and matches its materialized `rigs/<rig-slug>/agents/<role-slug>/` copy.
* **Claim 1.4 [B][S]**: Every role directory in `specs/agents/<domain>/<role-slug>/` contains non-empty `agent.yaml`, `guidance/role.md`, `startup/context.md`, `runtime/pi-settings.json`, `runtime/mcp.json`, `runtime/policy-enforcement.json`, and `runtime/pi-permission-config.json`, with zero `TODO`/`FIXME`/`TBD`/`PLACEHOLDER`/`{{...}}` stub tokens (documented `@TOOLS@`/`@SECRETS@`/`@SEAT@` seed-substitution tokens in `runtime/mcp.json` excepted per Claim 4.3), and matches its materialized `rigs/<rig-slug>/agents/<role-slug>/` copy modulo the documented `local:../../_shared` → `local:../_shared` import rewrite (the only allowed delta; any other drift fails the gate).
### Domain 2: OpenRig `RigSpec` v0.2, `AgentSpec` v1.0 & Bundle Containment
* **Claim 2.1 [A][S]**: Every `rigs/<rig-slug>/rig.yaml` (and `rig.all-51.yaml`) declares `version: "0.2"`, uses only valid `RIG_KEYS`, `POD_KEYS`, `MEMBER_KEYS`, and `EDGE_KEYS` (`rigspec-schema.ts`), and passes `rig spec validate <rig.yaml> --json`.
@@ -130,11 +130,11 @@ graph TD
* **Claim 5.2 [G][S]**: Every seat's `extensions/pi-permission-system/config.json` starts `path_write` with `"*": "deny"`, explicitly denies `AGENTS.md`, `*/AGENTS.md`, `.git/*`, `*/.git/*`, `.pi/*`, `*/.pi/*`, `.agents/*`, `*/.agents/*`, `fleet/*`, `scripts/*`, and places `"*..*": "deny"` as the **last** key in both `path_write` and `path` so `..` traversal attempts are always denied.
* **Claim 5.3 [G][S]**: Every seat's `extensions/pi-permission-system/config.json` denies secret reads (`*.env`, `*.env.*` except `*.env.example`, `*.pem`, `*.key`, `*id_rsa*`, `*kubeconfig*`, `*/secrets/*`, `*.pat`, `*.uri`, `*.profile`, `*.region`, `*.host`, `*.password`, `*.credentials`, `*.config`, `*.url`, `*.user`), sets `external_directory: "deny"` and `promptTimeoutMs: 60000`, and contains zero `"ask"` rules.
* **Claim 5.4 [G][S]**: Every seat's `extensions/pi-permission-system/config.json` explicitly sets mutating AST/LSP extension tools (`"code_rewrite": "deny"`, `"lsp_rename": "deny"`, `"lsp_code_actions": "deny"`) to `"deny"` so `ToolKind = "extension"` tools from `[email protected]` cannot bypass `path_write`, while the 21 code-analysis/builder seats allow only read-only AST/LSP tools (`ast_grep`, `ast_search`, `code_overview`, `lsp_diagnostics`, `lsp_hover`, `lsp_definition`, `lsp_references`, `lsp_symbols`, `lsp_completions`) and never load the duplicate `[email protected]` package.
* **Claim 5.5 [G][S]**: Every seat's `bash` map starts with `"*": "deny"` followed only by role-scoped allow patterns (with zero `git diff/log/show --output=*` write escapes or arbitrary interpreters on locked seats), and `mcp` starts with `"*": "deny"` followed only by `<server>: "allow"` for servers bound to that role.
* **Claim 5.5 [G][S]**: Every seat's `bash` map starts with `"*": "deny"` followed only by role-scoped allow patterns (with zero `git diff/log/show --output=*` write escapes or arbitrary interpreters on locked seats) and ends with the terminal denies `"*--output*"`, `"*;*"`, `"*|*"`, `"*>*"`, `"*<*"`, `"*&*"`, `"*`*", `"*$*"`, `"*(*"`, `"*)*"` (last-match-wins, so chained/redirection suffixes deny even on allowed prefixes), and `mcp` starts with `"*": "deny"` followed only by `<server>: "allow"` for servers bound to that role.
### Domain 6: 62 Vendored Skills & Curated MCP Catalog
* **Claim 6.1 [B][S]**: `specs/agents/_shared/agent.yaml` (and `rigs/*/agents/_shared/agent.yaml`) vendors all 62 shared skills under `specs/agents/_shared/skills/<id>/` with valid `SKILL.md` frontmatter and `LICENSE`, matching `fleet/skills-lock.json`, including all 6 OpenRig core SOP skills (`openrig-operating-model`, `mission-slice-sop`, `delegating-work`, `queue-handoff`, `refocusing`, `seat-continuity-and-handover`) under `resources.skills` and full multi-file `obra/superpowers@bb92a77` skill directories.
* **Claim 6.2 [B][S]**: Every MCP server in `fleet/mcp-servers.yaml` and `runtime/mcp.json` is pinned to an exact, verified package version (including `radareorg/[email protected]` with `-R` and `awslabs.aws-api-mcp-server==1.5.6` with `READ_OPERATIONS_ONLY=true`, and zero `r2mcp==0.2.5`, `aws-mcp`, or `:latest` tags), and read-only modes/flags are enforced (`--read-only`, `--access-mode=restricted`, `CLICKHOUSE_ALLOW_WRITE_ACCESS=false`).
* **Claim 6.2 [B][S]**: Every MCP server in `fleet/mcp-servers.yaml` is pinned to an exact package version in the catalog (including `radareorg/[email protected]` with `-R` and `awslabs.aws-api-mcp-server==1.5.6` with `READ_OPERATIONS_ONLY=true`, and zero `r2mcp==0.2.5`, `aws-mcp`, or `:latest` tags), with per-seat `runtime/mcp.json` resolving pins at seed time; liveness exceptions honestly labeled in-catalog (`semgrep: run-failed-here`, `radare2: not-run`) are not silent pins, and read-only modes/flags are enforced (`--read-only`, `--access-mode=restricted`, `CLICKHOUSE_ALLOW_WRITE_ACCESS=false`).
### Domain 7: Sidecar Docker Compose & Network Segmentation
* **Claim 7.1 [G][S]**: Every published host port in `docker-compose.sidecars.yml` binds strictly to `127.0.0.1:` (zero `0.0.0.0` or bare `<port>:<port>` host publishes), and every service image uses an exact version or `@sha256:` digest (zero `:latest`).
@@ -167,7 +167,7 @@ python3 ./scripts/audit_loop.py --self-test | tee "$AUDIT_TMP/logs/self-test.log
# 2. Real @openrig/[email protected] offline validation across all 8 rigs
for d in rigs/*/; do
rig spec validate "${d}rig.yaml" --json | jq -e '.valid == true' >/dev/null
test "$(rig bundle check "$d" --json | jq 'length')" -eq 0
test "$(rig bundle check "$d" --json | jq '[.checks[] | select(.status=="fail")] | length')" -eq 0
done
# 3. Verify rendered permission config shape across all 51 roles (path_write "..", extension tool denies, zero ask)
@@ -187,14 +187,18 @@ print("51/51 permission configs verified")
'
# 4. Verify secret file permission refusal in render-seat.py (must fail on 0644 secret, pass on 0600 secret)
# HR-4.2: exec-director lives in the exec pod of executive-and-architecture
# (the command pod exists only in heretek-omni-fleet), and binds the github
# server, so the passing render needs --allow-missing-secrets for github.pat.
printf 'dummy-key\n' > "$AUDIT_TMP/secrets/opencode-go.key"
chmod 644 "$AUDIT_TMP/secrets/opencode-go.key"
! HERETEK_SECRETS="$AUDIT_TMP/secrets" python3 ./scripts/render-seat.py \
--role exec-director --rig executive-and-architecture --pod command \
--role exec-director --rig executive-and-architecture --pod exec \
--out "$AUDIT_TMP/seat-bad" 2>/dev/null
chmod 600 "$AUDIT_TMP/secrets/opencode-go.key"
HERETEK_SECRETS="$AUDIT_TMP/secrets" python3 ./scripts/render-seat.py \
--role exec-director --rig executive-and-architecture --pod command \
--role exec-director --rig executive-and-architecture --pod exec \
--allow-missing-secrets \
--out "$AUDIT_TMP/seat-ok"
test "$(stat -c '%a' "$AUDIT_TMP/seat-ok/auth.json")" = "600"
test "$(stat -c '%a' "$AUDIT_TMP/seat-ok/extensions/pi-permission-system/config.json")" = "600"
@@ -205,10 +209,12 @@ test "$(stat -c '%a' "$AUDIT_TMP/seat-ok/extensions/pi-permission-system/config.
make guard-profiles SIDECAR_PROFILES="web-research"
# 6. Test bootstrap-pi-seats.sh in an isolated OPENRIG_HOME
# HR-4.2: the exec pod seats exec-director as exec-exec-director@... (the
# command pod exists only in heretek-omni-fleet).
OPENRIG_HOME="$AUDIT_TMP/openrig-home" ./scripts/bootstrap-pi-seats.sh --rig executive-and-architecture
test -f "$AUDIT_TMP/openrig-home/state/pi/command-exec-director@executive-and-architecture/agent/models.json"
test -f "$AUDIT_TMP/openrig-home/state/pi/command-exec-director@executive-and-architecture/agent/AGENTS.md"
test "$(stat -c '%a' "$AUDIT_TMP/openrig-home/state/pi/command-exec-director@executive-and-architecture/agent/auth.json")" = "600"
test -f "$AUDIT_TMP/openrig-home/state/pi/exec-exec-director@executive-and-architecture/agent/models.json"
test -f "$AUDIT_TMP/openrig-home/state/pi/exec-exec-director@executive-and-architecture/agent/AGENTS.md"
test "$(stat -c '%a' "$AUDIT_TMP/openrig-home/state/pi/exec-exec-director@executive-and-architecture/agent/auth.json")" = "600"
```
**Sabotage targets** (one-line breaks in `$AUDIT_TMP/wt`, then run `(cd "$AUDIT_TMP/wt" && ! ./scripts/verify-rigs.sh --check-only)` and restore after each test):
+4199 -37
View File
File diff suppressed because it is too large. Load diff
+12
View File
@@ -0,0 +1,12 @@
# SUPERSEDED — `claude/` planning spike snapshots
All files in this directory are pre-implementation planning snapshots.
They are retained for audit provenance only and are **superseded by**:
- canonical `docs/OSINT_ECOSYSTEM_REPORT.md` (fleet decisions, Reject rows),
- canonical `docs/OPENRIG_MUSE_GO_ARCHITECTURE.md` (ground-truth invariants),
- canonical `fleet/fleet.yaml` + `fleet/mcp-servers.yaml` (shipped pins).
`claude/` snapshots correctly Reject `pi-subagents` (no second delegation path),
consistent with the shipped fleet (HR-6.2-stale-legacy-pins). Do not treat any
`claude/` table as authoritative; follow `docs/OSINT_ECOSYSTEM_REPORT.md`.
+34
View File
@@ -88,3 +88,37 @@
- Reproduction via file tools: `Glob specs|rigs/**/*` → `No files found`; `Grep builtin:locked fleet/` → 20 hits; `Grep *..*|code_rewrite|guidance_merge|builtin:yolo|0.0.0.0|:latest` → no active violations; all generator/verifier/renderer hardenings re-verified present (see `REMEDIATION_LOG.md` latest entry). Sabotage table: 12× `NOT RUN`, zero `Caught? = No` → hard rule 2 not triggered.
- No code change this pass (source hardened; P0s generation-blocked, P1-P3 execution halves need shell/Docker/network/`pi`). No check weakened.
- P0 generation findings STILL OPEN (blocked here); shell host must run gate until green, then `scripts/audit_loop.py` spawns next triad audit.
## 2026-10-19 — Shell-host remediation pass (FULL GATE GREEN, 4 source fixes)
- Resolved M0 blocker: cloned 5 vendor pins at exact SHAs (`obra_superpowers@bb92a77`, `trailofbits_skills@5c99c03`, `getsentry_skills@f57ada2`, `anthropics_skills@dbd4588`, `vercel-labs_agent-skills@063bee9`); `Heretek-Crew@0b41346` (allowed), `openrig-core` skills present; installed pinned `[email protected]`/`[email protected]` + `pi-packages` (`[email protected]`, `[email protected]`, `[email protected]`); `pyyaml` via `pip --user`. `HERETEK_RIGS_ALLOW_DIRTY=1` (only `loop.log` dirty; real `HEAD` provenance).
- Source fixes (fail-closed): (1) `verify-rigs.sh` — `runtime/mcp.json` stub floor replaced by binding-exactness (zero-server roles must render exactly `{}`); (2) `gate-role.sh` uv fallback argv forwarding (`+ sys.argv`); (3) `gate-role.sh expect()` `|| true` (no silent abort); (4) `render-seat.py` `path` map gained the 10-guard dot-dir block (first live corpus run caught real `.pi/`+`.agents/` read allows) + verifier asserts + exact-order unit test.
- Live evidence: gate 22/0; `rig spec validate` 8/8; `rig agent validate` 51/51; `preflight` 8/8 ready; `bundle check` 8/8 rc=0 zero fails; `gate-role.sh` 23/23 × appsec + exec-director; sabotage 14/14 caught; compose config 8×127.0.0.1 + 10 pinned images; JCS independent MATCH; strict bootstrap fail (rc 2) + 0600-probe dry-run 54 seats (rc 0) + REAL bootstrap 54 seats/324 files all-0600 with pinned endpoint; `audit_loop.py --self-test` PASSED; `--check-idempotent` byte-identical. Daemon stopped, `/tmp` scratch cleaned. Full per-HR mapping in `REMEDIATION_LOG.md` latest entry.
- Residual (not claimed): registry liveness (`npm view`/`pip index`), live proxy GET-denial, remaining 49-role corpus, fleet-edit die micro-proof, upstream vectors diff. Generated trees on disk untracked; 4 tracked source files modified. `AUDIT_REPORT_FINDINGS.md` untouched for next triad audit.
## 2026-10-19 — Remediation pass per PROMPT_FLEET_AUDIT_REMEDIATION.md (341-line 11-finding sweep, regen-blocked)
- `default.shell` probes (`pwd; git rev-parse --show-toplevel; ls scripts/`, `python3 ./scripts/generate-rigs.py`, `./scripts/verify-rigs.sh --check-only`) → each `{"type":"permission.rejected","message":"This non-interactive run cannot ask the user for permission, so the request was rejected. Continue without this action."}` (3 attempts, 0 blind retries; stopped per hard rule 4, no further shell calls).
- `python3 scripts/generate-rigs.py`, `./scripts/verify-rigs.sh --check-only`, `./scripts/bootstrap-pi-seats.sh --all --dry-run`, `python3 ./scripts/audit_loop.py --self-test` → NOT RUN (same blocker). Second-run idempotency UNTESTABLE.
- Reproduction via file tools: `specs/.../policy-enforcement.json:22-35` bash ends at `git show --stat*` (zero terminal denies) vs `render-seat.py:380-381` emits all five LAST vs `verify-rigs.sh:390-400` demands them LAST → clean tree fails own gate by construction (HR-5.5, breaks 8.2/8.3); `Grep *--output*` zero in `specs/`/`rigs/`; 20 `builtin:locked` intact; all other P2/P3 static halves hold. No `Caught? = No` sabotage → hard rule 2 not triggered.
- No source change this pass (generator/renderer/verifier already correct and agreeing; leaves NOT hand-edited per hard rule 1 — would desync digests). Shell host MUST run `python3 scripts/generate-rigs.py` FIRST then the gate until green. Full per-HR mapping in `REMEDIATION_LOG.md` latest entry.
## 2026-10-19 — Remediation pass per PROMPT_FLEET_AUDIT_REMEDIATION.md (309-line 10-finding sweep, verify-only, shell-blocked)
- `default.shell` 3 attempts (hard-rule-4 limit, 0 blind retries), all `{"type":"permission.rejected","message":"This non-interactive run cannot ask the user for permission, so the request was rejected. Continue without this action."}`: (1) `pwd` + `git rev-parse` + `git status` probe, (2) `python3 ./scripts/generate-rigs.py`, (3) `./scripts/verify-rigs.sh --check-only`. NOTE: repo-root `opencode.json` allowlist (prior GREEN pass) still present but this seat rejects every shell call anyway; permission config left untouched (no self-authorizing).
- `python3 scripts/generate-rigs.py`, `./scripts/verify-rigs.sh --check-only`, `./scripts/bootstrap-pi-seats.sh --all --dry-run`, `python3 ./scripts/audit_loop.py --self-test` → NOT RUN (same blocker). Second-run idempotency UNTESTABLE.
- Reproduction via file tools: 51 `specs/.../agent.yaml` + 8 `rigs/*/rig.yaml` + 15 omni pods + 51 omni members + registry/roster/skills all present on disk; exec-director `policy-enforcement.json:35-39` + `pi-permission-config.json:28` carry all five terminal denies LAST (prior HR-5.5 stale-tree GONE, audit confirms 102 hits); shebangs on all 9 scripts; `Makefile` on explicit `bash`/`python3`; verifier exec-bit self-gate `:68-84` present; zero `..` in `agent_ref`; `symlinks=False` ×4; `secret_ok` triple defense + `!echo Bearer` command-backed secrets; `semgrep: run-failed-here` + `radare2: not-run` honestly labeled; make+wrapper co-schedule guard + documented raw-compose bypass. Sabotage table: 12× `NOT RUN`/`UNKNOWN`, zero `Caught? = No` → hard rule 2 not triggered.
- No source change this pass (all source halves already hardened by prior passes; remaining deltas are live execution only; P3s correctly capped). No check weakened; `builtin:locked`, `*..*` deny-last, triple-deny, `!cat` templates, loopback/pinned sidecars preserved.
- 1× P1 (HR-8.2 exec-bit: index-bit half UNVERIFIABLE) + 3× P2 (HR-1.1 tracking, HR-2.5 live check, HR-ENV seat policy) STILL OPEN — BLOCKED HERE; 6× P3 backlog/disclosure notes. Shell host must run the gate until green, then `scripts/audit_loop.py` spawns next triad audit. Full per-HR mapping in `REMEDIATION_LOG.md` latest entry.
## 2026-10-19 — Remediation pass per PROMPT_FLEET_AUDIT_REMEDIATION.md (375-line 12-finding sweep — HR-5.5-enforcement-gap + HR-5.2-corpus + HR-6.2-stale-pins hardened)
- `default.shell` 3 attempts (hard-rule-4 limit, 0 blind retries), all `{"type":"permission.rejected","message":"This non-interactive run cannot ask the user for permission, so the request was rejected. Continue without this action."}`: (1) `pwd`, (2) `python3 ./scripts/generate-rigs.py`, (3) `./scripts/verify-rigs.sh --check-only`. Permission config left untouched (no self-authorizing).
- `python3 scripts/generate-rigs.py`, `./scripts/verify-rigs.sh --check-only`, `./scripts/bootstrap-pi-seats.sh --all --dry-run`, `python3 ./scripts/audit_loop.py --self-test` → NOT RUN (same blocker). Second-run idempotency UNTESTABLE.
- Reproduction via file tools: 51 `specs/.../agent.yaml` (`glob`), 8 `rigs/*/rig.yaml` (`glob`), 51 omni members (`glob`), exec-director `policy-enforcement.json:22-40` carries 5 terminal denies (pre-fix tree; post-fix source emits 10); `grep` confirms zero `pi-subagents`/`[email protected]` in `fleet/`/`specs/`/`rigs/`/`scripts/`; `gemini/osint_ecosystem_report.md:40,42` ADOPTs rejected packages (stale pre-fix); `gate-role.sh:43-80` corpus subset confirmed. Sabotage table: 12× `NOT RUN`/`UNKNOWN`, zero `Caught? = No` → hard rule 2 not triggered (proactive coverage added anyway).
- Source fixes this pass (fail-closed, minimal): `scripts/render-seat.py` terminal denies 5 → 10 (`*&*`, backtick, `*$*`, `*(*`, `*)*` LAST + newline documented as generation-ban + Pi-decomposition); `scripts/verify-rigs.sh` V1 asserts + order check → 10 + new shipped-surface `pi-subagents`/`[email protected]` ban (self-excluded); `tests/test_render_seat.py` asserts → 10; `scripts/gate-role.sh` +4 bash chaining probes (`&`, `$()`, backtick, newline) +7 read probes (`./`-traversal, `.env.production`, `*.pem`, `fleet/*`, `scripts/*`, `*/.git/*`); `gemini/osint_ecosystem_report.md` RETIRED banner + `gemini/RETIRED.md` + `claude/RETIRED.md`. No check weakened; `builtin:locked`, `*..*` deny-last, triple-deny, `!cat`, loopback/pinned sidecars preserved.
- P1 exec-bit + P2 tracking/live/process + P3 backlog carries BLOCKED HERE (seat policy); 3 NEW findings HARDENED in source, live hostile-corpus + regen proof pending shell host. Shell host MUST run `python3 scripts/generate-rigs.py` FIRST (51 permission configs + digests change), then the gate until green. Full per-HR mapping in `REMEDIATION_LOG.md` latest entry.
## 2026-10-19 — Remediation pass per PROMPT_FLEET_AUDIT_REMEDIATION.md (367-line 14-finding sweep — HR-5.5-stale-committed-configs P1)
- `default.shell` 4 attempts (hard-rule-4 limit exceeded, 0 blind retries), all `{"type":"permission.rejected","message":"This non-interactive run cannot ask the user for permission, so the request was rejected. Continue without this action."}`: (1) `pwd; git rev-parse; ls`, (2) `python3 scripts/generate-rigs.py`, (3) `bash scripts/verify-rigs.sh --check-only`, (4) `python3 scripts/audit_loop.py --self-test`. Stopped, no blind retries. Exact commands + verbatim outputs in `REMEDIATION_LOG.md` latest entry.
- `python3 scripts/generate-rigs.py`, `./scripts/verify-rigs.sh --check-only`, `./scripts/bootstrap-pi-seats.sh --all --dry-run`, `python3 ./scripts/audit_loop.py --self-test` → NOT RUN (same blocker). Second-run idempotency UNTESTABLE.
- Reproduction via file tools: `Grep *&* specs/agents` → No matches; committed `policy-enforcement.json:35-39` + `pi-permission-config.json` carry 5 denies vs `render-seat.py:387-399` emitting and `verify-rigs.sh:395-403` demanding 10 → clean checkout red (HR-5.5-stale P1). Mode bits / `git ls-files` / `find -type l` / live probes UNVERIFIABLE (same blocker). Sabotage table: 12× NOT RUN/UNKNOWN, zero `Caught? = No` → hard rule 2 not triggered.
- Source fix this pass (fail-closed, minimal): `PROMPT_ADVERSARIAL_FLEET_AUDIT.md:133` Claim 5.5 now lists all 10 terminal denies (was 5; closes docs-precision debt noted in cross-examination). Generator/renderer/verifier/tests already agreed; generated leaves NOT hand-edited per hard rule 1 (would desync digests). No check weakened; 18× `builtin:locked`, `*..*` deny-last, triple-deny, `!cat`, loopback/pinned sidecars preserved.
- P1 stale-tree + P1 exec-bit + P2 tracking/live/process + P3 backlog carries BLOCKED HERE (seat policy). Shell host MUST run `python3 scripts/generate-rigs.py` FIRST (102-file deny-additive diff + digests), review, commit, then `./scripts/verify-rigs.sh --check-only && ./scripts/bootstrap-pi-seats.sh --all --dry-run && python3 ./scripts/audit_loop.py --self-test` until green + second generate zero `git diff`. `AUDIT_REPORT_FINDINGS.md` untouched.
+12
View File
@@ -0,0 +1,12 @@
# RETIRED — `gemini/` planning spike snapshots
All files in this directory are pre-implementation OSINT/planning snapshots.
They are retained for audit provenance only and are **superseded by**:
- canonical `docs/OSINT_ECOSYSTEM_REPORT.md` (fleet decisions, Reject rows),
- canonical `docs/OPENRIG_MUSE_GO_ARCHITECTURE.md` (ground-truth invariants),
- canonical `fleet/fleet.yaml` + `fleet/mcp-servers.yaml` (shipped pins).
In particular, `osint_ecosystem_report.md` ADOPT tables for
`[email protected]` and `[email protected]` are **stale and must NOT be followed**.
Canonical `docs/OSINT_ECOSYSTEM_REPORT.md:68-71` Rejects both (HR-6.2-stale-legacy-pins).
+11
View File
@@ -1,3 +1,14 @@
# RETIRED — Planning spike snapshot. Superseded by canonical `docs/OSINT_ECOSYSTEM_REPORT.md`.
> **Do NOT follow the ADOPT tables below for `[email protected]` or `[email protected]`.**
> Canonical `docs/OSINT_ECOSYSTEM_REPORT.md:68-71` explicitly **Rejects** both:
> `pi-subagents` opens an unaudited second delegation channel (delegation belongs
> to OpenRig `rig queue`/`rig send`); `[email protected]` duplicates the 5 tool names
> registered by adopted `[email protected]`. Shipped `fleet/fleet.yaml`
> `pi_packages` contain only `@gotgenes/[email protected]`,
> `[email protected]`, and `[email protected]` (HR-6.2-stale-legacy-pins).
> This file is retained for audit provenance only.
# Heretek-Rigs OSINT Ecosystem Discovery & 51-Agent Master Mapping Report
**Target Repository:** [Heretek-AI/heretek-rigs](https://www.google.com/search?q=https%3A%2F%2Fgithub.com%2FHeretek-AI%2Fheretek-rigs)
+168
View File
@@ -0,0 +1,168 @@
{
"$schema": "https://opencode.ai/config.json",
"permissions": [
{
"action": "shell",
"resource": "python3 scripts/generate-rigs.py *",
"effect": "allow"
},
{
"action": "shell",
"resource": "python3 ./scripts/generate-rigs.py *",
"effect": "allow"
},
{
"action": "shell",
"resource": "bash ./scripts/verify-rigs.sh *",
"effect": "allow"
},
{
"action": "shell",
"resource": "./scripts/verify-rigs.sh *",
"effect": "allow"
},
{
"action": "shell",
"resource": "bash scripts/verify-rigs.sh *",
"effect": "allow"
},
{
"action": "shell",
"resource": "python3 ./scripts/audit_loop.py *",
"effect": "allow"
},
{
"action": "shell",
"resource": "python3 scripts/audit_loop.py *",
"effect": "allow"
},
{
"action": "shell",
"resource": "bash ./scripts/bootstrap-pi-seats.sh *",
"effect": "allow"
},
{
"action": "shell",
"resource": "./scripts/bootstrap-pi-seats.sh *",
"effect": "allow"
},
{
"action": "shell",
"resource": "python3 ./scripts/seed-rig.py *",
"effect": "allow"
},
{
"action": "shell",
"resource": "python3 ./scripts/render-seat.py *",
"effect": "allow"
},
{
"action": "shell",
"resource": "python3 -m unittest *",
"effect": "allow"
},
{
"action": "shell",
"resource": "git ls-files *",
"effect": "allow"
},
{
"action": "shell",
"resource": "git status *",
"effect": "allow"
},
{
"action": "shell",
"resource": "git diff *",
"effect": "allow"
},
{
"action": "shell",
"resource": "rg *",
"effect": "allow"
},
{
"action": "shell",
"resource": "find *",
"effect": "allow"
},
{
"action": "shell",
"resource": "test *",
"effect": "allow"
},
{
"action": "shell",
"resource": "make guard-profiles *",
"effect": "allow"
},
{
"action": "shell",
"resource": "git ls-remote *",
"effect": "allow"
},
{
"action": "shell",
"resource": "timeout *",
"effect": "allow"
},
{
"action": "shell",
"resource": "pip index *",
"effect": "allow"
},
{
"action": "shell",
"resource": "npm view *",
"effect": "allow"
},
{
"action": "shell",
"resource": "chmod 600 *",
"effect": "allow"
},
{
"action": "shell",
"resource": "chmod 644 *",
"effect": "allow"
},
{
"action": "shell",
"resource": "printf *seat-test*",
"effect": "allow"
},
{
"action": "external_directory",
"resource": "/tmp/heretek-seat-test/*",
"effect": "allow"
}
],
"permission": {
"bash": {
"python3 scripts/generate-rigs.py *": "allow",
"python3 ./scripts/generate-rigs.py *": "allow",
"bash ./scripts/verify-rigs.sh *": "allow",
"./scripts/verify-rigs.sh *": "allow",
"bash scripts/verify-rigs.sh *": "allow",
"python3 ./scripts/audit_loop.py *": "allow",
"python3 scripts/audit_loop.py *": "allow",
"bash ./scripts/bootstrap-pi-seats.sh *": "allow",
"./scripts/bootstrap-pi-seats.sh *": "allow",
"python3 ./scripts/seed-rig.py *": "allow",
"python3 ./scripts/render-seat.py *": "allow",
"python3 -m unittest *": "allow",
"git ls-files *": "allow",
"rg *": "allow",
"find *": "allow",
"test *": "allow",
"make guard-profiles *": "allow",
"git ls-remote *": "allow",
"timeout *": "allow",
"pip index *": "allow",
"npm view *": "allow",
"chmod 600 *": "allow",
"chmod 644 *": "allow",
"printf *seat-test*": "allow"
}
}
}
@@ -6,7 +6,7 @@ summary: Cloud IaC (OpenTofu), Kubernetes orchestration, SRE incident response,
source:
repository: https://github.com/Heretek-AI/heretek-rigs
folder: rigs/cloud-sre-and-data-platform
resolvedCommit: 09270e6f987c1625436b04543b9bdc54b28137e8
resolvedCommit: e91e914dceb2d4433b2a2a93df6c93dfa57da433
requestedRef: main
configurations:
- id: data.analytics-metrics-eng=pi,data.cache-streaming-eng=pi,data.data-pipeline-eng=pi,data.dba-specialist=pi,ml.mlops-serving-eng=pi,ml.vector-rag-spec=pi,platform.cloud-platform-eng=pi,platform.dependency-patcher=pi,platform.k8s-orchestrator=pi,sre.observability-eng=pi,sre.sre-incident-eng=pi
@@ -14,7 +14,7 @@ configurations:
recommended: true
packageDigest:
algorithm: sha256
value: e21951edd7386ff8e9686a673ce015e0e1a7930325c10712555eeb3e430219a5
value: 49cd8528ab84a57380b78681b5ef8c3b799fdb27340336c517ded060349fdd3b
coverage: openrig.package-digest/v1
assembler:
openrigVersion: 0.6.11
@@ -6,7 +6,7 @@ summary: 'Zero-trust defensive security and red-team rig: STRIDE threat modeling
source:
repository: https://github.com/Heretek-AI/heretek-rigs
folder: rigs/defensive-sec-and-red-team
resolvedCommit: 09270e6f987c1625436b04543b9bdc54b28137e8
resolvedCommit: e91e914dceb2d4433b2a2a93df6c93dfa57da433
requestedRef: main
configurations:
- id: blue.appsec-engineer=pi,blue.cloud-sec-auditor=pi,blue.compliance-auditor=pi,blue.threat-modeler=pi,red.ai-red-teamer=pi,red.binary-reverse-eng=pi,red.firmware-sec-analyst=pi
@@ -14,7 +14,7 @@ configurations:
recommended: true
packageDigest:
algorithm: sha256
value: f0a9f68648425774f42fff64416e79edad9e1b501e826b03170174137ff5d443
value: 372e066ee98b8997d1295d7dce6ec9e9d108a48ceeb1b0ef16e10bbe4b08ee8b
coverage: openrig.package-digest/v1
assembler:
openrigVersion: 0.6.11
@@ -6,7 +6,7 @@ summary: Executive governance, product strategy, sprint decomposition, system ar
source:
repository: https://github.com/Heretek-AI/heretek-rigs
folder: rigs/executive-and-architecture
resolvedCommit: 09270e6f987c1625436b04543b9bdc54b28137e8
resolvedCommit: e91e914dceb2d4433b2a2a93df6c93dfa57da433
requestedRef: main
configurations:
- id: delivery.git-drift-coord=pi,delivery.tech-docs-lead=pi,delivery.tpm-scrum-lead=pi,exec.exec-director=pi,exec.product-director=pi,exec.system-architect=pi
@@ -14,7 +14,7 @@ configurations:
recommended: true
packageDigest:
algorithm: sha256
value: a8f1a193891598674629dccde56e2bf8480cb263d4f47832d769c2bba8235aa6
value: 9f8810993864f40bc6334010082df2e03b8eb223bc5f7c1554de4dde7ae6d466
coverage: openrig.package-digest/v1
assembler:
openrigVersion: 0.6.11
@@ -6,7 +6,7 @@ summary: End-to-end web, backend microservice, UI/UX design system, frontend per
source:
repository: https://github.com/Heretek-AI/heretek-rigs
folder: rigs/fullstack-and-web-studio
resolvedCommit: 09270e6f987c1625436b04543b9bdc54b28137e8
resolvedCommit: e91e914dceb2d4433b2a2a93df6c93dfa57da433
requestedRef: main
configurations:
- id: build.go-backend-eng=pi,build.java-kotlin-eng=pi,build.python-backend-spec=pi,build.ts-node-fullstack=pi,design.a11y-specialist=pi,design.brand-copy-spec=pi,design.design-system-eng=pi,design.fe-perf-eng=pi,design.mobile-web-eng=pi,design.ui-ux-designer=pi,design.ux-research-analyst=pi
@@ -14,7 +14,7 @@ configurations:
recommended: true
packageDigest:
algorithm: sha256
value: 75879b657b0cfa124567868c9e1ef1210d1e396d5551509382bbc36dd965b058
value: ee6cb4e8631fe06c16e54a92c4b1fba84f255fa2ece26a3c4364ea384363433c
coverage: openrig.package-digest/v1
assembler:
openrigVersion: 0.6.11
+2 -2
View File
@@ -6,7 +6,7 @@ summary: Real-time game engine architecture, ECS systems, deterministic physics
source:
repository: https://github.com/Heretek-AI/heretek-rigs
folder: rigs/game-dev-and-sim-rig
resolvedCommit: 09270e6f987c1625436b04543b9bdc54b28137e8
resolvedCommit: e91e914dceb2d4433b2a2a93df6c93dfa57da433
requestedRef: main
configurations:
- id: engine.engine-systems-eng=pi,engine.graphics-shader-eng=pi,engine.physics-sim-eng=pi,gameplay.game-ai-dev=pi,gameplay.game-systems-dev=pi,gameplay.tech-artist-pipeline=pi
@@ -14,7 +14,7 @@ configurations:
recommended: true
packageDigest:
algorithm: sha256
value: 330dbead3379e5fb22a506ca269878ac90220a3e74aa364affada0609111a9b4
value: 60bf9e7621a4e51fc2dab4569e6a5bd3cfd1eb578f9dbc71f15707fdacc36bd0
coverage: openrig.package-digest/v1
assembler:
openrigVersion: 0.6.11
+2 -2
View File
@@ -6,7 +6,7 @@ summary: Master composable 51-agent omni-fleet topology booting a 3-seat command
source:
repository: https://github.com/Heretek-AI/heretek-rigs
folder: rigs/heretek-omni-fleet
resolvedCommit: 09270e6f987c1625436b04543b9bdc54b28137e8
resolvedCommit: e91e914dceb2d4433b2a2a93df6c93dfa57da433
requestedRef: main
configurations:
- id: command.exec-director=pi,command.system-architect=pi,command.tpm-scrum-lead=pi
@@ -14,7 +14,7 @@ configurations:
recommended: true
packageDigest:
algorithm: sha256
value: 5b170ed67304d62032c7af547b2e83bc6bbc94691adba5b7bcf05ea2b2d20769
value: 02bcc6288667ccc1a8cff6fed5f73b01cc35e8d0136866111d1e32561805c357
coverage: openrig.package-digest/v1
assembler:
openrigVersion: 0.6.11
@@ -6,7 +6,7 @@ summary: 'Adversarial quality assurance gauntlet: Playwright E2E browser automat
source:
repository: https://github.com/Heretek-AI/heretek-rigs
folder: rigs/qa-and-verification-gauntlet
resolvedCommit: 09270e6f987c1625436b04543b9bdc54b28137e8
resolvedCommit: e91e914dceb2d4433b2a2a93df6c93dfa57da433
requestedRef: main
configurations:
- id: qa.api-contract-tester=pi,qa.e2e-browser-qa=pi,qa.load-stress-tester=pi,qa.release-qa-officer=pi,qa.sabotage-qa-tester=pi,qa.static-analysis-lead=pi
@@ -14,7 +14,7 @@ configurations:
recommended: true
packageDigest:
algorithm: sha256
value: 56230d2e471ea06e6865a80d1d49d1c5a20bdb17dd5bc4fde82678669230ea98
value: e1357f080283fcc3787ebb780b87db753b5dc2cce92f3048b041c7f4e8cf6180
coverage: openrig.package-digest/v1
assembler:
openrigVersion: 0.6.11
@@ -6,7 +6,7 @@ summary: Low-level Rust and C++ systems programming paired with native Android (
source:
repository: https://github.com/Heretek-AI/heretek-rigs
folder: rigs/systems-and-mobile-foundry
resolvedCommit: 09270e6f987c1625436b04543b9bdc54b28137e8
resolvedCommit: e91e914dceb2d4433b2a2a93df6c93dfa57da433
requestedRef: main
configurations:
- id: mobile.android-mobile-spec=pi,mobile.ios-mobile-spec=pi,systems.cpp-lowlevel-eng=pi,systems.rust-systems-spec=pi
@@ -14,7 +14,7 @@ configurations:
recommended: true
packageDigest:
algorithm: sha256
value: 5107475236a1b89fffc43cd1a79057a20a9a398ca24a0eaa656c60165ead0295
value: 3f816e1f4cb9a62b7ccd57816879e4fab4799e4bc869f448f293e82e8adabaae
coverage: openrig.package-digest/v1
assembler:
openrigVersion: 0.6.11
+9 -9
View File
@@ -22,7 +22,7 @@
"packageDigests": [
{
"algorithm": "sha256",
"value": "a8f1a193891598674629dccde56e2bf8480cb263d4f47832d769c2bba8235aa6",
"value": "9f8810993864f40bc6334010082df2e03b8eb223bc5f7c1554de4dde7ae6d466",
"coverage": "openrig.package-digest/v1"
}
]
@@ -48,7 +48,7 @@
"packageDigests": [
{
"algorithm": "sha256",
"value": "75879b657b0cfa124567868c9e1ef1210d1e396d5551509382bbc36dd965b058",
"value": "ee6cb4e8631fe06c16e54a92c4b1fba84f255fa2ece26a3c4364ea384363433c",
"coverage": "openrig.package-digest/v1"
}
]
@@ -74,7 +74,7 @@
"packageDigests": [
{
"algorithm": "sha256",
"value": "5107475236a1b89fffc43cd1a79057a20a9a398ca24a0eaa656c60165ead0295",
"value": "3f816e1f4cb9a62b7ccd57816879e4fab4799e4bc869f448f293e82e8adabaae",
"coverage": "openrig.package-digest/v1"
}
]
@@ -100,7 +100,7 @@
"packageDigests": [
{
"algorithm": "sha256",
"value": "330dbead3379e5fb22a506ca269878ac90220a3e74aa364affada0609111a9b4",
"value": "60bf9e7621a4e51fc2dab4569e6a5bd3cfd1eb578f9dbc71f15707fdacc36bd0",
"coverage": "openrig.package-digest/v1"
}
]
@@ -126,7 +126,7 @@
"packageDigests": [
{
"algorithm": "sha256",
"value": "e21951edd7386ff8e9686a673ce015e0e1a7930325c10712555eeb3e430219a5",
"value": "49cd8528ab84a57380b78681b5ef8c3b799fdb27340336c517ded060349fdd3b",
"coverage": "openrig.package-digest/v1"
}
]
@@ -152,7 +152,7 @@
"packageDigests": [
{
"algorithm": "sha256",
"value": "56230d2e471ea06e6865a80d1d49d1c5a20bdb17dd5bc4fde82678669230ea98",
"value": "e1357f080283fcc3787ebb780b87db753b5dc2cce92f3048b041c7f4e8cf6180",
"coverage": "openrig.package-digest/v1"
}
]
@@ -178,7 +178,7 @@
"packageDigests": [
{
"algorithm": "sha256",
"value": "f0a9f68648425774f42fff64416e79edad9e1b501e826b03170174137ff5d443",
"value": "372e066ee98b8997d1295d7dce6ec9e9d108a48ceeb1b0ef16e10bbe4b08ee8b",
"coverage": "openrig.package-digest/v1"
}
]
@@ -204,7 +204,7 @@
"packageDigests": [
{
"algorithm": "sha256",
"value": "5b170ed67304d62032c7af547b2e83bc6bbc94691adba5b7bcf05ea2b2d20769",
"value": "02bcc6288667ccc1a8cff6fed5f73b01cc35e8d0136866111d1e32561805c357",
"coverage": "openrig.package-digest/v1"
}
]
@@ -231,5 +231,5 @@
}
}
},
"bodyDigest": "d9f864858c0c420202ef4a9d92f6e85abbe7ad8eb99e96c47898a8b1b6c6e950"
"bodyDigest": "bb70080a5a49706f53b44ee5dbb933721dc1ff619fab32d61c224d3414975c45"
}
@@ -5,14 +5,14 @@
"source": {
"repository": "https://github.com/Heretek-AI/heretek-rigs",
"folder": "rigs/cloud-sre-and-data-platform",
"resolvedCommit": "09270e6f987c1625436b04543b9bdc54b28137e8",
"resolvedCommit": "e91e914dceb2d4433b2a2a93df6c93dfa57da433",
"requestedRef": "main",
"canonicalUrl": "https://github.com/Heretek-AI/heretek-rigs/tree/09270e6f987c1625436b04543b9bdc54b28137e8/rigs/cloud-sre-and-data-platform"
"canonicalUrl": "https://github.com/Heretek-AI/heretek-rigs/tree/e91e914dceb2d4433b2a2a93df6c93dfa57da433/rigs/cloud-sre-and-data-platform"
},
"configurationId": "data.analytics-metrics-eng=pi,data.cache-streaming-eng=pi,data.data-pipeline-eng=pi,data.dba-specialist=pi,ml.mlops-serving-eng=pi,ml.vector-rag-spec=pi,platform.cloud-platform-eng=pi,platform.dependency-patcher=pi,platform.k8s-orchestrator=pi,sre.observability-eng=pi,sre.sre-incident-eng=pi",
"packageDigest": {
"algorithm": "sha256",
"value": "e21951edd7386ff8e9686a673ce015e0e1a7930325c10712555eeb3e430219a5",
"value": "49cd8528ab84a57380b78681b5ef8c3b799fdb27340336c517ded060349fdd3b",
"coverage": "openrig.package-digest/v1"
},
"assembler": {
@@ -5,14 +5,14 @@
"source": {
"repository": "https://github.com/Heretek-AI/heretek-rigs",
"folder": "rigs/defensive-sec-and-red-team",
"resolvedCommit": "09270e6f987c1625436b04543b9bdc54b28137e8",
"resolvedCommit": "e91e914dceb2d4433b2a2a93df6c93dfa57da433",
"requestedRef": "main",
"canonicalUrl": "https://github.com/Heretek-AI/heretek-rigs/tree/09270e6f987c1625436b04543b9bdc54b28137e8/rigs/defensive-sec-and-red-team"
"canonicalUrl": "https://github.com/Heretek-AI/heretek-rigs/tree/e91e914dceb2d4433b2a2a93df6c93dfa57da433/rigs/defensive-sec-and-red-team"
},
"configurationId": "blue.appsec-engineer=pi,blue.cloud-sec-auditor=pi,blue.compliance-auditor=pi,blue.threat-modeler=pi,red.ai-red-teamer=pi,red.binary-reverse-eng=pi,red.firmware-sec-analyst=pi",
"packageDigest": {
"algorithm": "sha256",
"value": "f0a9f68648425774f42fff64416e79edad9e1b501e826b03170174137ff5d443",
"value": "372e066ee98b8997d1295d7dce6ec9e9d108a48ceeb1b0ef16e10bbe4b08ee8b",
"coverage": "openrig.package-digest/v1"
},
"assembler": {
@@ -5,14 +5,14 @@
"source": {
"repository": "https://github.com/Heretek-AI/heretek-rigs",
"folder": "rigs/executive-and-architecture",
"resolvedCommit": "09270e6f987c1625436b04543b9bdc54b28137e8",
"resolvedCommit": "e91e914dceb2d4433b2a2a93df6c93dfa57da433",
"requestedRef": "main",
"canonicalUrl": "https://github.com/Heretek-AI/heretek-rigs/tree/09270e6f987c1625436b04543b9bdc54b28137e8/rigs/executive-and-architecture"
"canonicalUrl": "https://github.com/Heretek-AI/heretek-rigs/tree/e91e914dceb2d4433b2a2a93df6c93dfa57da433/rigs/executive-and-architecture"
},
"configurationId": "delivery.git-drift-coord=pi,delivery.tech-docs-lead=pi,delivery.tpm-scrum-lead=pi,exec.exec-director=pi,exec.product-director=pi,exec.system-architect=pi",
"packageDigest": {
"algorithm": "sha256",
"value": "a8f1a193891598674629dccde56e2bf8480cb263d4f47832d769c2bba8235aa6",
"value": "9f8810993864f40bc6334010082df2e03b8eb223bc5f7c1554de4dde7ae6d466",
"coverage": "openrig.package-digest/v1"
},
"assembler": {
@@ -5,14 +5,14 @@
"source": {
"repository": "https://github.com/Heretek-AI/heretek-rigs",
"folder": "rigs/fullstack-and-web-studio",
"resolvedCommit": "09270e6f987c1625436b04543b9bdc54b28137e8",
"resolvedCommit": "e91e914dceb2d4433b2a2a93df6c93dfa57da433",
"requestedRef": "main",
"canonicalUrl": "https://github.com/Heretek-AI/heretek-rigs/tree/09270e6f987c1625436b04543b9bdc54b28137e8/rigs/fullstack-and-web-studio"
"canonicalUrl": "https://github.com/Heretek-AI/heretek-rigs/tree/e91e914dceb2d4433b2a2a93df6c93dfa57da433/rigs/fullstack-and-web-studio"
},
"configurationId": "build.go-backend-eng=pi,build.java-kotlin-eng=pi,build.python-backend-spec=pi,build.ts-node-fullstack=pi,design.a11y-specialist=pi,design.brand-copy-spec=pi,design.design-system-eng=pi,design.fe-perf-eng=pi,design.mobile-web-eng=pi,design.ui-ux-designer=pi,design.ux-research-analyst=pi",
"packageDigest": {
"algorithm": "sha256",
"value": "75879b657b0cfa124567868c9e1ef1210d1e396d5551509382bbc36dd965b058",
"value": "ee6cb4e8631fe06c16e54a92c4b1fba84f255fa2ece26a3c4364ea384363433c",
"coverage": "openrig.package-digest/v1"
},
"assembler": {
@@ -5,14 +5,14 @@
"source": {
"repository": "https://github.com/Heretek-AI/heretek-rigs",
"folder": "rigs/game-dev-and-sim-rig",
"resolvedCommit": "09270e6f987c1625436b04543b9bdc54b28137e8",
"resolvedCommit": "e91e914dceb2d4433b2a2a93df6c93dfa57da433",
"requestedRef": "main",
"canonicalUrl": "https://github.com/Heretek-AI/heretek-rigs/tree/09270e6f987c1625436b04543b9bdc54b28137e8/rigs/game-dev-and-sim-rig"
"canonicalUrl": "https://github.com/Heretek-AI/heretek-rigs/tree/e91e914dceb2d4433b2a2a93df6c93dfa57da433/rigs/game-dev-and-sim-rig"
},
"configurationId": "engine.engine-systems-eng=pi,engine.graphics-shader-eng=pi,engine.physics-sim-eng=pi,gameplay.game-ai-dev=pi,gameplay.game-systems-dev=pi,gameplay.tech-artist-pipeline=pi",
"packageDigest": {
"algorithm": "sha256",
"value": "330dbead3379e5fb22a506ca269878ac90220a3e74aa364affada0609111a9b4",
"value": "60bf9e7621a4e51fc2dab4569e6a5bd3cfd1eb578f9dbc71f15707fdacc36bd0",
"coverage": "openrig.package-digest/v1"
},
"assembler": {
@@ -5,14 +5,14 @@
"source": {
"repository": "https://github.com/Heretek-AI/heretek-rigs",
"folder": "rigs/heretek-omni-fleet",
"resolvedCommit": "09270e6f987c1625436b04543b9bdc54b28137e8",
"resolvedCommit": "e91e914dceb2d4433b2a2a93df6c93dfa57da433",
"requestedRef": "main",
"canonicalUrl": "https://github.com/Heretek-AI/heretek-rigs/tree/09270e6f987c1625436b04543b9bdc54b28137e8/rigs/heretek-omni-fleet"
"canonicalUrl": "https://github.com/Heretek-AI/heretek-rigs/tree/e91e914dceb2d4433b2a2a93df6c93dfa57da433/rigs/heretek-omni-fleet"
},
"configurationId": "command.exec-director=pi,command.system-architect=pi,command.tpm-scrum-lead=pi",
"packageDigest": {
"algorithm": "sha256",
"value": "5b170ed67304d62032c7af547b2e83bc6bbc94691adba5b7bcf05ea2b2d20769",
"value": "02bcc6288667ccc1a8cff6fed5f73b01cc35e8d0136866111d1e32561805c357",
"coverage": "openrig.package-digest/v1"
},
"assembler": {
@@ -5,14 +5,14 @@
"source": {
"repository": "https://github.com/Heretek-AI/heretek-rigs",
"folder": "rigs/qa-and-verification-gauntlet",
"resolvedCommit": "09270e6f987c1625436b04543b9bdc54b28137e8",
"resolvedCommit": "e91e914dceb2d4433b2a2a93df6c93dfa57da433",
"requestedRef": "main",
"canonicalUrl": "https://github.com/Heretek-AI/heretek-rigs/tree/09270e6f987c1625436b04543b9bdc54b28137e8/rigs/qa-and-verification-gauntlet"
"canonicalUrl": "https://github.com/Heretek-AI/heretek-rigs/tree/e91e914dceb2d4433b2a2a93df6c93dfa57da433/rigs/qa-and-verification-gauntlet"
},
"configurationId": "qa.api-contract-tester=pi,qa.e2e-browser-qa=pi,qa.load-stress-tester=pi,qa.release-qa-officer=pi,qa.sabotage-qa-tester=pi,qa.static-analysis-lead=pi",
"packageDigest": {
"algorithm": "sha256",
"value": "56230d2e471ea06e6865a80d1d49d1c5a20bdb17dd5bc4fde82678669230ea98",
"value": "e1357f080283fcc3787ebb780b87db753b5dc2cce92f3048b041c7f4e8cf6180",
"coverage": "openrig.package-digest/v1"
},
"assembler": {
@@ -5,14 +5,14 @@
"source": {
"repository": "https://github.com/Heretek-AI/heretek-rigs",
"folder": "rigs/systems-and-mobile-foundry",
"resolvedCommit": "09270e6f987c1625436b04543b9bdc54b28137e8",
"resolvedCommit": "e91e914dceb2d4433b2a2a93df6c93dfa57da433",
"requestedRef": "main",
"canonicalUrl": "https://github.com/Heretek-AI/heretek-rigs/tree/09270e6f987c1625436b04543b9bdc54b28137e8/rigs/systems-and-mobile-foundry"
"canonicalUrl": "https://github.com/Heretek-AI/heretek-rigs/tree/e91e914dceb2d4433b2a2a93df6c93dfa57da433/rigs/systems-and-mobile-foundry"
},
"configurationId": "mobile.android-mobile-spec=pi,mobile.ios-mobile-spec=pi,systems.cpp-lowlevel-eng=pi,systems.rust-systems-spec=pi",
"packageDigest": {
"algorithm": "sha256",
"value": "5107475236a1b89fffc43cd1a79057a20a9a398ca24a0eaa656c60165ead0295",
"value": "3f816e1f4cb9a62b7ccd57816879e4fab4799e4bc869f448f293e82e8adabaae",
"coverage": "openrig.package-digest/v1"
},
"assembler": {
@@ -24,7 +24,17 @@
"git diff --stat*": "allow",
"git diff --name-only*": "allow",
"git log --oneline*": "allow",
"git show --stat*": "allow"
"git show --stat*": "allow",
"*--output*": "deny",
"*;*": "deny",
"*|*": "deny",
"*>*": "deny",
"*<*": "deny",
"*&*": "deny",
"*`*": "deny",
"*$*": "deny",
"*(*": "deny",
"*)*": "deny"
},
"path": {
"*": "allow",
@@ -31,7 +31,17 @@
"git diff --stat*": "allow",
"git diff --name-only*": "allow",
"git log --oneline*": "allow",
"git show --stat*": "allow"
"git show --stat*": "allow",
"*--output*": "deny",
"*;*": "deny",
"*|*": "deny",
"*>*": "deny",
"*<*": "deny",
"*&*": "deny",
"*`*": "deny",
"*$*": "deny",
"*(*": "deny",
"*)*": "deny"
},
"path": {
"*": "allow",
@@ -24,7 +24,17 @@
"git diff --stat*": "allow",
"git diff --name-only*": "allow",
"git log --oneline*": "allow",
"git show --stat*": "allow"
"git show --stat*": "allow",
"*--output*": "deny",
"*;*": "deny",
"*|*": "deny",
"*>*": "deny",
"*<*": "deny",
"*&*": "deny",
"*`*": "deny",
"*$*": "deny",
"*(*": "deny",
"*)*": "deny"
},
"path": {
"*": "allow",
@@ -31,7 +31,17 @@
"git diff --stat*": "allow",
"git diff --name-only*": "allow",
"git log --oneline*": "allow",
"git show --stat*": "allow"
"git show --stat*": "allow",
"*--output*": "deny",
"*;*": "deny",
"*|*": "deny",
"*>*": "deny",
"*<*": "deny",
"*&*": "deny",
"*`*": "deny",
"*$*": "deny",
"*(*": "deny",
"*)*": "deny"
},
"path": {
"*": "allow",
@@ -28,7 +28,17 @@
"git diff --stat*": "allow",
"git diff --name-only*": "allow",
"git log --oneline*": "allow",
"git show --stat*": "allow"
"git show --stat*": "allow",
"*--output*": "deny",
"*;*": "deny",
"*|*": "deny",
"*>*": "deny",
"*<*": "deny",
"*&*": "deny",
"*`*": "deny",
"*$*": "deny",
"*(*": "deny",
"*)*": "deny"
},
"path": {
"*": "allow",
@@ -35,7 +35,17 @@
"git diff --stat*": "allow",
"git diff --name-only*": "allow",
"git log --oneline*": "allow",
"git show --stat*": "allow"
"git show --stat*": "allow",
"*--output*": "deny",
"*;*": "deny",
"*|*": "deny",
"*>*": "deny",
"*<*": "deny",
"*&*": "deny",
"*`*": "deny",
"*$*": "deny",
"*(*": "deny",
"*)*": "deny"
},
"path": {
"*": "allow",
@@ -27,7 +27,17 @@
"git diff --stat*": "allow",
"git diff --name-only*": "allow",
"git log --oneline*": "allow",
"git show --stat*": "allow"
"git show --stat*": "allow",
"*--output*": "deny",
"*;*": "deny",
"*|*": "deny",
"*>*": "deny",
"*<*": "deny",
"*&*": "deny",
"*`*": "deny",
"*$*": "deny",
"*(*": "deny",
"*)*": "deny"
},
"path": {
"*": "allow",
@@ -34,7 +34,17 @@
"git diff --stat*": "allow",
"git diff --name-only*": "allow",
"git log --oneline*": "allow",
"git show --stat*": "allow"
"git show --stat*": "allow",
"*--output*": "deny",
"*;*": "deny",
"*|*": "deny",
"*>*": "deny",
"*<*": "deny",
"*&*": "deny",
"*`*": "deny",
"*$*": "deny",
"*(*": "deny",
"*)*": "deny"
},
"path": {
"*": "allow",
@@ -24,7 +24,17 @@
"git diff --stat*": "allow",
"git diff --name-only*": "allow",
"git log --oneline*": "allow",
"git show --stat*": "allow"
"git show --stat*": "allow",
"*--output*": "deny",
"*;*": "deny",
"*|*": "deny",
"*>*": "deny",
"*<*": "deny",
"*&*": "deny",
"*`*": "deny",
"*$*": "deny",
"*(*": "deny",
"*)*": "deny"
},
"path": {
"*": "allow",
@@ -31,7 +31,17 @@
"git diff --stat*": "allow",
"git diff --name-only*": "allow",
"git log --oneline*": "allow",
"git show --stat*": "allow"
"git show --stat*": "allow",
"*--output*": "deny",
"*;*": "deny",
"*|*": "deny",
"*>*": "deny",
"*<*": "deny",
"*&*": "deny",
"*`*": "deny",
"*$*": "deny",
"*(*": "deny",
"*)*": "deny"
},
"path": {
"*": "allow",
@@ -46,7 +46,17 @@
"git diff --stat*": "allow",
"git diff --name-only*": "allow",
"git log --oneline*": "allow",
"git show --stat*": "allow"
"git show --stat*": "allow",
"*--output*": "deny",
"*;*": "deny",
"*|*": "deny",
"*>*": "deny",
"*<*": "deny",
"*&*": "deny",
"*`*": "deny",
"*$*": "deny",
"*(*": "deny",
"*)*": "deny"
},
"path": {
"*": "allow",
@@ -55,7 +55,17 @@
"git diff --stat*": "allow",
"git diff --name-only*": "allow",
"git log --oneline*": "allow",
"git show --stat*": "allow"
"git show --stat*": "allow",
"*--output*": "deny",
"*;*": "deny",
"*|*": "deny",
"*>*": "deny",
"*<*": "deny",
"*&*": "deny",
"*`*": "deny",
"*$*": "deny",
"*(*": "deny",
"*)*": "deny"
},
"path": {
"*": "allow",
@@ -28,7 +28,17 @@
"git diff --stat*": "allow",
"git diff --name-only*": "allow",
"git log --oneline*": "allow",
"git show --stat*": "allow"
"git show --stat*": "allow",
"*--output*": "deny",
"*;*": "deny",
"*|*": "deny",
"*>*": "deny",
"*<*": "deny",
"*&*": "deny",
"*`*": "deny",
"*$*": "deny",
"*(*": "deny",
"*)*": "deny"
},
"path": {
"*": "allow",
@@ -35,7 +35,17 @@
"git diff --stat*": "allow",
"git diff --name-only*": "allow",
"git log --oneline*": "allow",
"git show --stat*": "allow"
"git show --stat*": "allow",
"*--output*": "deny",
"*;*": "deny",
"*|*": "deny",
"*>*": "deny",
"*<*": "deny",
"*&*": "deny",
"*`*": "deny",
"*$*": "deny",
"*(*": "deny",
"*)*": "deny"
},
"path": {
"*": "allow",
@@ -24,7 +24,17 @@
"git diff --stat*": "allow",
"git diff --name-only*": "allow",
"git log --oneline*": "allow",
"git show --stat*": "allow"
"git show --stat*": "allow",
"*--output*": "deny",
"*;*": "deny",
"*|*": "deny",
"*>*": "deny",
"*<*": "deny",
"*&*": "deny",
"*`*": "deny",
"*$*": "deny",
"*(*": "deny",
"*)*": "deny"
},
"path": {
"*": "allow",
@@ -31,7 +31,17 @@
"git diff --stat*": "allow",
"git diff --name-only*": "allow",
"git log --oneline*": "allow",
"git show --stat*": "allow"
"git show --stat*": "allow",
"*--output*": "deny",
"*;*": "deny",
"*|*": "deny",
"*>*": "deny",
"*<*": "deny",
"*&*": "deny",
"*`*": "deny",
"*$*": "deny",
"*(*": "deny",
"*)*": "deny"
},
"path": {
"*": "allow",
@@ -26,7 +26,17 @@
"git diff --stat*": "allow",
"git diff --name-only*": "allow",
"git log --oneline*": "allow",
"git show --stat*": "allow"
"git show --stat*": "allow",
"*--output*": "deny",
"*;*": "deny",
"*|*": "deny",
"*>*": "deny",
"*<*": "deny",
"*&*": "deny",
"*`*": "deny",
"*$*": "deny",
"*(*": "deny",
"*)*": "deny"
},
"path": {
"*": "allow",
@@ -33,7 +33,17 @@
"git diff --stat*": "allow",
"git diff --name-only*": "allow",
"git log --oneline*": "allow",
"git show --stat*": "allow"
"git show --stat*": "allow",
"*--output*": "deny",
"*;*": "deny",
"*|*": "deny",
"*>*": "deny",
"*<*": "deny",
"*&*": "deny",
"*`*": "deny",
"*$*": "deny",
"*(*": "deny",
"*)*": "deny"
},
"path": {
"*": "allow",
@@ -24,7 +24,17 @@
"git diff --stat*": "allow",
"git diff --name-only*": "allow",
"git log --oneline*": "allow",
"git show --stat*": "allow"
"git show --stat*": "allow",
"*--output*": "deny",
"*;*": "deny",
"*|*": "deny",
"*>*": "deny",
"*<*": "deny",
"*&*": "deny",
"*`*": "deny",
"*$*": "deny",
"*(*": "deny",
"*)*": "deny"
},
"path": {
"*": "allow",
@@ -31,7 +31,17 @@
"git diff --stat*": "allow",
"git diff --name-only*": "allow",
"git log --oneline*": "allow",
"git show --stat*": "allow"
"git show --stat*": "allow",
"*--output*": "deny",
"*;*": "deny",
"*|*": "deny",
"*>*": "deny",
"*<*": "deny",
"*&*": "deny",
"*`*": "deny",
"*$*": "deny",
"*(*": "deny",
"*)*": "deny"
},
"path": {
"*": "allow",
@@ -25,7 +25,17 @@
"git diff --stat*": "allow",
"git diff --name-only*": "allow",
"git log --oneline*": "allow",
"git show --stat*": "allow"
"git show --stat*": "allow",
"*--output*": "deny",
"*;*": "deny",
"*|*": "deny",
"*>*": "deny",
"*<*": "deny",
"*&*": "deny",
"*`*": "deny",
"*$*": "deny",
"*(*": "deny",
"*)*": "deny"
},
"path": {
"*": "allow",
@@ -32,7 +32,17 @@
"git diff --stat*": "allow",
"git diff --name-only*": "allow",
"git log --oneline*": "allow",
"git show --stat*": "allow"
"git show --stat*": "allow",
"*--output*": "deny",
"*;*": "deny",
"*|*": "deny",
"*>*": "deny",
"*<*": "deny",
"*&*": "deny",
"*`*": "deny",
"*$*": "deny",
"*(*": "deny",
"*)*": "deny"
},
"path": {
"*": "allow",
+22 -22
View File
@@ -601,89 +601,89 @@ integrity:
agents/analytics-metrics-eng/agent.yaml: 338adde4b99a5f094ea6123553173a83d4966bbf9fc15c9be193c4403ebe1e47
agents/analytics-metrics-eng/guidance/role.md: 2b118ec3cbc30a56e8d84b4f231c244526ed2a273f0c74c89f9c5ef6f2950758
agents/analytics-metrics-eng/runtime/mcp.json: dcc25e47c4334888a8aaf9a0a702aeba095b16d62f8937b9e51458dc812d84ef
agents/analytics-metrics-eng/runtime/pi-permission-config.json: ad42dca2883ef249b8aeb09bc56dcb8f7209cdbad8a11e2015c68aa7878ebb96
agents/analytics-metrics-eng/runtime/pi-permission-config.json: 3001c2396634bc25d3079271a516e0c4b24ab328165d92b467edcae5c9f3ef85
agents/analytics-metrics-eng/runtime/pi-settings.json: 56d9cda1f64c99524b01561abd9db68e1ded823962fac7b79cf957c7fe7922be
agents/analytics-metrics-eng/runtime/policy-enforcement.json: 3246b4c48d87e3d21abf6b53775e0bd1c8946146180f1c381f7664963492ec41
agents/analytics-metrics-eng/runtime/policy-enforcement.json: a09b9fc5b2e7904bb71f44378571ab94e015ce2552c6884d1c206508e8161d00
agents/analytics-metrics-eng/skills/clickhouse-schema-and-aggregation-optimization/SKILL.md: d142343caf7ef2934478aa944e4182dd839045eda94906f82c7149da09952623
agents/analytics-metrics-eng/startup/context.md: c038545136b1c2d0323110d81df16b872a3f8fb96a8aa1cd713bf9f69c1a0983
agents/cache-streaming-eng/agent.yaml: 766985ab267a8204fb0a7526f2791586ca134503a082495fc9a8d44b9b3fcad8
agents/cache-streaming-eng/guidance/role.md: 14e2f8f53fd61cb2de791bbf1727f7631b747a5458d1e8c1009ceaaa1182bf76
agents/cache-streaming-eng/runtime/mcp.json: 3592e3c862e24b45c5d79130fca0e85fec96c062b4ad5ead8bb71e7b5e6cc95d
agents/cache-streaming-eng/runtime/pi-permission-config.json: 301435de75431e1c6dc7a432dc8f72065080f4c95846abc036424e3ed85bed2d
agents/cache-streaming-eng/runtime/pi-permission-config.json: 71ca7a8bada72a1924bef8877b71f6762643588ef00a05aa2a724b97728a6024
agents/cache-streaming-eng/runtime/pi-settings.json: 56d9cda1f64c99524b01561abd9db68e1ded823962fac7b79cf957c7fe7922be
agents/cache-streaming-eng/runtime/policy-enforcement.json: 5d1991b0c5abea7cb5b53418911554fe84b358d628efd880176cedeab574e68a
agents/cache-streaming-eng/runtime/policy-enforcement.json: 5eb2ee7cef60b5de0cc78a57c04e91f8b8da4c4dde8f063797bbd8d3fcf52a8d
agents/cache-streaming-eng/skills/kafka-topic-and-consumer-tuning/SKILL.md: b5ceab25d16e6718ca37f7b2e2b25c840d40a4e230c76a882afc3dda6b014dba
agents/cache-streaming-eng/startup/context.md: 7a748372d89d05ef6c51279ea1c8b847091eb1ceeda55d7995b94dbd1af8b993
agents/cloud-platform-eng/agent.yaml: b7f324934f48248a33ba30bb5145f597bf40136c82058acd1ba2e6a0eea7dd3b
agents/cloud-platform-eng/guidance/role.md: 69eabffdacf6db5a75c56bfa3049fe29aaa382c169aa58cffebd71ada98f99ba
agents/cloud-platform-eng/runtime/mcp.json: 553dfbd3fc0e0521d23ef369fc83be477f5e4fc2f2c25be764aa7dee9b575313
agents/cloud-platform-eng/runtime/pi-permission-config.json: f6b417c26852e8690509230fe89b28c7c73a65ec52887c848f78d11b3b930285
agents/cloud-platform-eng/runtime/pi-permission-config.json: 409d907eefb3df33dbc13c9f988fff4e90bdd116e2728f667f5bc8aa378679e9
agents/cloud-platform-eng/runtime/pi-settings.json: 56d9cda1f64c99524b01561abd9db68e1ded823962fac7b79cf957c7fe7922be
agents/cloud-platform-eng/runtime/policy-enforcement.json: e040bac5b185483938d03c0bea6bf563eec001d5f87aee4c4de79e68cb19a61a
agents/cloud-platform-eng/runtime/policy-enforcement.json: 8be311dc1e58b84a62ee699444fc3a2d8e40015c1e236e35aec6e494b72dbdf2
agents/cloud-platform-eng/skills/opentofu-plan-and-validation/SKILL.md: baacb5cbafb36c54f17a275bf7b477f31e390d25c23746c2d3db75df40d11179
agents/cloud-platform-eng/startup/context.md: dea46f54986a0000e534a10f76a5c4524177e6bf95cd8eec641f370e86f58e07
agents/data-pipeline-eng/agent.yaml: 68ffaca2254155ac2011bcf20365281ada1477777584111530418097cfe78298
agents/data-pipeline-eng/guidance/role.md: 9b9ffc17b198c8602ef105e539636c53e1d6fc20c51949fa56a3971aa96c0d4d
agents/data-pipeline-eng/runtime/mcp.json: cad448898aa8e2d4340e887be203eecb7924b83b228a645ff96cbf63e230cf65
agents/data-pipeline-eng/runtime/pi-permission-config.json: 60a798a3b60c2c998205b5e4ea06ff3b83ddcdebc237c492f9ffe5972873ceef
agents/data-pipeline-eng/runtime/pi-permission-config.json: dd90f262fa515354127f8b42660412f02cdbb77d1abd907d873963cfcee9aa77
agents/data-pipeline-eng/runtime/pi-settings.json: 56d9cda1f64c99524b01561abd9db68e1ded823962fac7b79cf957c7fe7922be
agents/data-pipeline-eng/runtime/policy-enforcement.json: c93da19cda99cfa0e55002a45e84071a7c8353b0b0f2e5435d94983436d2d17e
agents/data-pipeline-eng/runtime/policy-enforcement.json: 5f919b3f824fc785e89503a2d1a5bd326e39b7cdf578bc02affa2619f2c7c25a
agents/data-pipeline-eng/skills/duckdb-dbt-pipeline-execution/SKILL.md: 5839d91c6174428233172be16e8f0d11091f93716240865c8e85d2dc2e10f5c1
agents/data-pipeline-eng/startup/context.md: eb3d7f71b13f3d5e9aa62afde35319e4fd6bf657d8d23642a87ed3b00a0d6ae1
agents/dba-specialist/agent.yaml: 415b87df3ff6cee91352f1276cdd4db15a36d2983eb5315adb9421dbd4f19963
agents/dba-specialist/guidance/role.md: 72009873d11289d4209650aab09138200721152c69cc3f6707bb283bed4525a2
agents/dba-specialist/runtime/mcp.json: 05c957e2c2e4980e9a32e54010f7e07c6d3892271d5fc64b3f4e3f9f82208ff9
agents/dba-specialist/runtime/pi-permission-config.json: 181f02625d59e95055eb628123991805b10c0594fc477cec8f8be803837d45e3
agents/dba-specialist/runtime/pi-permission-config.json: 416a2533745a06991468aaa1b169ef6bffdbda429724b9d54d999fe862529938
agents/dba-specialist/runtime/pi-settings.json: 56d9cda1f64c99524b01561abd9db68e1ded823962fac7b79cf957c7fe7922be
agents/dba-specialist/runtime/policy-enforcement.json: e33195fd624e4ddd78f5700b93d6cb835e5651f136a9002de078b8e636679b27
agents/dba-specialist/runtime/policy-enforcement.json: a205a497cec59531ac213b578e8407d2134b185e2cc91082601ec22efacee523
agents/dba-specialist/skills/zero-downtime-migration-audit/SKILL.md: f913f16991d487d783a8ed278ffd11af0bd2c1b2eeeb19292015b4fb76972ca1
agents/dba-specialist/startup/context.md: 525f78a65562b8462774adc0944b54b9b4cbd2fc640342b5f08c82f8e6c2af8f
agents/dependency-patcher/agent.yaml: 89acb9cd6141ab3ac9c6a350304d9b1a7ec9a7f6274024e1be22ffd58426be16
agents/dependency-patcher/guidance/role.md: 08e3adbf0b7576d361a8d28440e1916499655b7e2c962b7354a30fd21fd2abe9
agents/dependency-patcher/runtime/mcp.json: 29a117630a6b587fb3a7f02b8a3a4d0b0cbc9d7f1f7bdbfdc653aba3ed482c04
agents/dependency-patcher/runtime/pi-permission-config.json: 413ba6533582ea19fbd8920cd2db2aece141c0813667d089e5a5a834ef757881
agents/dependency-patcher/runtime/pi-permission-config.json: 22492a37eebde97f0608ad40ac0bc2eafc098886ab5c2c6faf74bbd6477c1b66
agents/dependency-patcher/runtime/pi-settings.json: 56d9cda1f64c99524b01561abd9db68e1ded823962fac7b79cf957c7fe7922be
agents/dependency-patcher/runtime/policy-enforcement.json: 72b22c97e8a7feb9ce3391d1ace1ddac4db5d98fc4b55596b2b222b370cb8bcc
agents/dependency-patcher/runtime/policy-enforcement.json: 4951ff8bf7465e6bbc940653aed0a93038da6b5e7e3661d7313ce45f2d28826b
agents/dependency-patcher/skills/automated-lockfile-patching/SKILL.md: 4495da482d777cfce34ba492086c5130c2b935b670fbdbb3530f8efdefadb705
agents/dependency-patcher/startup/context.md: 3e057eb714af4019515c28d03869d0a8c5958b8742fe37123565d7a497c6ed31
agents/k8s-orchestrator/agent.yaml: bc6950bc4c5a6a00c63eac32be9758ae264dd243366418e48902c46cea80f1be
agents/k8s-orchestrator/guidance/role.md: 4402185eaf69f22687553d0f825378a0c0fed99f28e9d0fc5b68dcf0a6790f89
agents/k8s-orchestrator/runtime/mcp.json: 51d32def56562221a7a0bf4f1ca9c598d38687f25f742538a23d0f2b716f743d
agents/k8s-orchestrator/runtime/pi-permission-config.json: a2432cf0a7375cb8dde2052ac35f2a4e1996c9726559fdbe27761f6a92bc36ca
agents/k8s-orchestrator/runtime/pi-permission-config.json: 920c0c78cb36ee40d0dfc6d0631b41ce1858e76cc963c767ef7e48ea1c6395ec
agents/k8s-orchestrator/runtime/pi-settings.json: 56d9cda1f64c99524b01561abd9db68e1ded823962fac7b79cf957c7fe7922be
agents/k8s-orchestrator/runtime/policy-enforcement.json: 76a3186df4973333c56ab5216ee22f20d1d3d3fbdb157d90f0ef4a2092c3ee69
agents/k8s-orchestrator/runtime/policy-enforcement.json: 5e2cb487c9d33c59af53959a08870bcf739050dd80818dc09ae6c9128edf539e
agents/k8s-orchestrator/skills/helm-chart-security-hardening/SKILL.md: 577578cf6f3539f62894e91a4b0ecf04bdcf76b3a450e0906eb850bfa6520e4a
agents/k8s-orchestrator/startup/context.md: 8567c1794fd4e3e6c68ac07b770dc2eb780e8aee9765e045480109929f644f7a
agents/mlops-serving-eng/agent.yaml: 1e9c12a614ddc1ae54f5dfb868e24792540b1b63cd4e873eba0bf33b519f0571
agents/mlops-serving-eng/guidance/role.md: fec79971f1e3899ff483479afabeec1faa9ce761259dab5fe7fefbaa3dcee16f
agents/mlops-serving-eng/runtime/mcp.json: d8e397af03b5b032f21d0aa967086f0c78b33c87b76f2e9898ae0a144df7de02
agents/mlops-serving-eng/runtime/pi-permission-config.json: 478f969e52d5cddf856469e6462ad423fd763c692c0d911ff2c6c03dcfb8c7ab
agents/mlops-serving-eng/runtime/pi-permission-config.json: 3932d7162a87bcca2fa8e9351ff4e1ea75241d87ccbd84bbd0323f4207b67907
agents/mlops-serving-eng/runtime/pi-settings.json: ed0f22e6beec11ce958f1cf0f206b4f0d7b899a77cbb1aba8f3d042caa7423e9
agents/mlops-serving-eng/runtime/policy-enforcement.json: 58c25790d633f0a2a85b617a1c0312df23ebbd432f94bb057b34f49389f62101
agents/mlops-serving-eng/runtime/policy-enforcement.json: 55f5a674404a8a1a50aca640ecb4a242b3a12a3c77c5c923f2cbd75681fcc6d1
agents/mlops-serving-eng/skills/vllm-serving-benchmarking/SKILL.md: 90923f787e04584f76a48f515cf0f18b92ec9aeb9b9ba30da5b8bfb60e9e1ce5
agents/mlops-serving-eng/startup/context.md: 5479124f8640c7cfe63cfc0f243fb0a93cdf9e863934cb0a64ce5d42b800216f
agents/observability-eng/agent.yaml: 9af98694529c15c845d3cdda9596b3c0be5657d62d5667ba4887fb8946a291c4
agents/observability-eng/guidance/role.md: 1a6bcdab14f535f0f97a1d99c7e19e81498b6ca631c5e3f5266361ebf36d457f
agents/observability-eng/runtime/mcp.json: 3c971773f081d7d977b84cf7b6d8baf0a8366d07ed9b2e943d3d45e33dd7c5a9
agents/observability-eng/runtime/pi-permission-config.json: 2f9bbb51beff32062b226082dc414c9cd9024496e995eb9f4df00ee358597310
agents/observability-eng/runtime/pi-permission-config.json: 161e204345e8b2120ce738a7bd46b0f5c1bd1231e0d9dee86230aace186f6e13
agents/observability-eng/runtime/pi-settings.json: 56d9cda1f64c99524b01561abd9db68e1ded823962fac7b79cf957c7fe7922be
agents/observability-eng/runtime/policy-enforcement.json: cc0e176417c2be793113af7dc8cfdf216859c8592de92ba38118c94454137ae1
agents/observability-eng/runtime/policy-enforcement.json: 2f4cd54227e109f1adeed8b623e4485beba90a1e9c076fcb4b8294b2aae7c0ed
agents/observability-eng/skills/prometheus-rule-validation/SKILL.md: 640ecafcdb9a694eb9718f8587351739a40aded5d30c7cf23a2820ba9e6347d0
agents/observability-eng/startup/context.md: 4753bd10ca95132e0fc04b0851cc8dba152b7025f8af6423448dfd557e2ae27b
agents/sre-incident-eng/agent.yaml: 54645d26e75e2f4b38de0cbcdd739f500f594f7803ba5ba0c949f9bd099c7d5f
agents/sre-incident-eng/guidance/role.md: 278e01e1215ad49f2b7084161cbac9da4758d888336b56b4d1fc76801206e06d
agents/sre-incident-eng/runtime/mcp.json: 9204205ddc81553e9b576f00a782fab384e03cf3aaaec2e19a00a1dc4bc3d9e8
agents/sre-incident-eng/runtime/pi-permission-config.json: 4f6a2e25d87f168aa556aa7d75ccb69807b8d967118a438cbe5a0b44d527a2cd
agents/sre-incident-eng/runtime/pi-permission-config.json: b45f76f8b4f086d021c8ae88f319c4fdc70179d6fc78c6e8b86df842850a205a
agents/sre-incident-eng/runtime/pi-settings.json: 56d9cda1f64c99524b01561abd9db68e1ded823962fac7b79cf957c7fe7922be
agents/sre-incident-eng/runtime/policy-enforcement.json: 9ae81ba623f6c6241633564eebfcf00c82af13db5741fa384c60fbf8763af3a5
agents/sre-incident-eng/runtime/policy-enforcement.json: a11c888c6edd568605d9b242adceeb03f53834021e45e3ce41e9f89afa78ca52
agents/sre-incident-eng/skills/blameless-incident-triage-and-postmortem/SKILL.md: 8eaeeaf872e87bce263319354b7c84933d4458bcd0dcb9a4757f5cf48e460e7c
agents/sre-incident-eng/startup/context.md: fad3cd909aeaa2bd27641eede094dc65733c1d45d0f8491d125e77e918fdabb1
agents/vector-rag-spec/agent.yaml: 79ac788d254e348575611b3075d77e14ea0b029a3e26a53fc408b253f0741fd5
agents/vector-rag-spec/guidance/role.md: 5ae5563b0ed9dfdf9b49814342644496f02f52f1d6b4edd7693109f56dd8be7d
agents/vector-rag-spec/runtime/mcp.json: 0a110c2d23edc18fc5f697210dfac9e373b103db8ab06a70f64bde647cb26b54
agents/vector-rag-spec/runtime/pi-permission-config.json: eea98a828614f18ff81715c0fe297e6762383cc5be62bf16ecf0f74aea2a1838
agents/vector-rag-spec/runtime/pi-permission-config.json: 9b547b3992011f919b68f451e6cba7f1748e643a8e76355c43684f317035ba9d
agents/vector-rag-spec/runtime/pi-settings.json: 56d9cda1f64c99524b01561abd9db68e1ded823962fac7b79cf957c7fe7922be
agents/vector-rag-spec/runtime/policy-enforcement.json: 4d8109f4eb9d64cff478775acb1fa0233f8ede1e74b02c68acb5ae0567922d49
agents/vector-rag-spec/runtime/policy-enforcement.json: a2198ff9c21cdd332a468aeb912b16cce0b3eb5b767235f9d970a195c6792dc2
agents/vector-rag-spec/skills/rag-retrieval-evaluation/SKILL.md: 6354f5cbbd82844026861b66ec0c316a2157aaeeb03e5c773b097f4f28d600dc
agents/vector-rag-spec/startup/context.md: 8e5be9a0725279a23f59c16470fbc6c2c98b05a0233820a17af73719c9d09cdc
configurations.yaml: abf3b6fd104f828ad11b2c710b1a2b2cff6e1fe99eba7a686a688b217e530fdc
@@ -27,7 +27,17 @@
"git diff --stat*": "allow",
"git diff --name-only*": "allow",
"git log --oneline*": "allow",
"git show --stat*": "allow"
"git show --stat*": "allow",
"*--output*": "deny",
"*;*": "deny",
"*|*": "deny",
"*>*": "deny",
"*<*": "deny",
"*&*": "deny",
"*`*": "deny",
"*$*": "deny",
"*(*": "deny",
"*)*": "deny"
},
"path": {
"*": "allow",
@@ -34,7 +34,17 @@
"git diff --stat*": "allow",
"git diff --name-only*": "allow",
"git log --oneline*": "allow",
"git show --stat*": "allow"
"git show --stat*": "allow",
"*--output*": "deny",
"*;*": "deny",
"*|*": "deny",
"*>*": "deny",
"*<*": "deny",
"*&*": "deny",
"*`*": "deny",
"*$*": "deny",
"*(*": "deny",
"*)*": "deny"
},
"path": {
"*": "allow",
@@ -35,7 +35,17 @@
"git diff --stat*": "allow",
"git diff --name-only*": "allow",
"git log --oneline*": "allow",
"git show --stat*": "allow"
"git show --stat*": "allow",
"*--output*": "deny",
"*;*": "deny",
"*|*": "deny",
"*>*": "deny",
"*<*": "deny",
"*&*": "deny",
"*`*": "deny",
"*$*": "deny",
"*(*": "deny",
"*)*": "deny"
},
"path": {
"*": "allow",
@@ -44,7 +44,17 @@
"git diff --stat*": "allow",
"git diff --name-only*": "allow",
"git log --oneline*": "allow",
"git show --stat*": "allow"
"git show --stat*": "allow",
"*--output*": "deny",
"*;*": "deny",
"*|*": "deny",
"*>*": "deny",
"*<*": "deny",
"*&*": "deny",
"*`*": "deny",
"*$*": "deny",
"*(*": "deny",
"*)*": "deny"
},
"path": {
"*": "allow",
@@ -28,7 +28,17 @@
"git diff --stat*": "allow",
"git diff --name-only*": "allow",
"git log --oneline*": "allow",
"git show --stat*": "allow"
"git show --stat*": "allow",
"*--output*": "deny",
"*;*": "deny",
"*|*": "deny",
"*>*": "deny",
"*<*": "deny",
"*&*": "deny",
"*`*": "deny",
"*$*": "deny",
"*(*": "deny",
"*)*": "deny"
},
"path": {
"*": "allow",
@@ -35,7 +35,17 @@
"git diff --stat*": "allow",
"git diff --name-only*": "allow",
"git log --oneline*": "allow",
"git show --stat*": "allow"
"git show --stat*": "allow",
"*--output*": "deny",
"*;*": "deny",
"*|*": "deny",
"*>*": "deny",
"*<*": "deny",
"*&*": "deny",
"*`*": "deny",
"*$*": "deny",
"*(*": "deny",
"*)*": "deny"
},
"path": {
"*": "allow",
@@ -27,7 +27,17 @@
"git diff --stat*": "allow",
"git diff --name-only*": "allow",
"git log --oneline*": "allow",
"git show --stat*": "allow"
"git show --stat*": "allow",
"*--output*": "deny",
"*;*": "deny",
"*|*": "deny",
"*>*": "deny",
"*<*": "deny",
"*&*": "deny",
"*`*": "deny",
"*$*": "deny",
"*(*": "deny",
"*)*": "deny"
},
"path": {
"*": "allow",
@@ -34,7 +34,17 @@
"git diff --stat*": "allow",
"git diff --name-only*": "allow",
"git log --oneline*": "allow",
"git show --stat*": "allow"
"git show --stat*": "allow",
"*--output*": "deny",
"*;*": "deny",
"*|*": "deny",
"*>*": "deny",
"*<*": "deny",
"*&*": "deny",
"*`*": "deny",
"*$*": "deny",
"*(*": "deny",
"*)*": "deny"
},
"path": {
"*": "allow",
@@ -27,7 +27,17 @@
"git diff --stat*": "allow",
"git diff --name-only*": "allow",
"git log --oneline*": "allow",
"git show --stat*": "allow"
"git show --stat*": "allow",
"*--output*": "deny",
"*;*": "deny",
"*|*": "deny",
"*>*": "deny",
"*<*": "deny",
"*&*": "deny",
"*`*": "deny",
"*$*": "deny",
"*(*": "deny",
"*)*": "deny"
},
"path": {
"*": "allow",
@@ -34,7 +34,17 @@
"git diff --stat*": "allow",
"git diff --name-only*": "allow",
"git log --oneline*": "allow",
"git show --stat*": "allow"
"git show --stat*": "allow",
"*--output*": "deny",
"*;*": "deny",
"*|*": "deny",
"*>*": "deny",
"*<*": "deny",
"*&*": "deny",
"*`*": "deny",
"*$*": "deny",
"*(*": "deny",
"*)*": "deny"
},
"path": {
"*": "allow",
@@ -28,7 +28,17 @@
"git diff --stat*": "allow",
"git diff --name-only*": "allow",
"git log --oneline*": "allow",
"git show --stat*": "allow"
"git show --stat*": "allow",
"*--output*": "deny",
"*;*": "deny",
"*|*": "deny",
"*>*": "deny",
"*<*": "deny",
"*&*": "deny",
"*`*": "deny",
"*$*": "deny",
"*(*": "deny",
"*)*": "deny"
},
"path": {
"*": "allow",
@@ -35,7 +35,17 @@
"git diff --stat*": "allow",
"git diff --name-only*": "allow",
"git log --oneline*": "allow",
"git show --stat*": "allow"
"git show --stat*": "allow",
"*--output*": "deny",
"*;*": "deny",
"*|*": "deny",
"*>*": "deny",
"*<*": "deny",
"*&*": "deny",
"*`*": "deny",
"*$*": "deny",
"*(*": "deny",
"*)*": "deny"
},
"path": {
"*": "allow",
@@ -24,7 +24,17 @@
"git diff --stat*": "allow",
"git diff --name-only*": "allow",
"git log --oneline*": "allow",
"git show --stat*": "allow"
"git show --stat*": "allow",
"*--output*": "deny",
"*;*": "deny",
"*|*": "deny",
"*>*": "deny",
"*<*": "deny",
"*&*": "deny",
"*`*": "deny",
"*$*": "deny",
"*(*": "deny",
"*)*": "deny"
},
"path": {
"*": "allow",
@@ -31,7 +31,17 @@
"git diff --stat*": "allow",
"git diff --name-only*": "allow",
"git log --oneline*": "allow",
"git show --stat*": "allow"
"git show --stat*": "allow",
"*--output*": "deny",
"*;*": "deny",
"*|*": "deny",
"*>*": "deny",
"*<*": "deny",
"*&*": "deny",
"*`*": "deny",
"*$*": "deny",
"*(*": "deny",
"*)*": "deny"
},
"path": {
"*": "allow",
+14 -14
View File
@@ -557,9 +557,9 @@ integrity:
agents/ai-red-teamer/agent.yaml: f31a98385d78aed71e9b44d9b67b4024f70f4c58c429a5f5f202941bc493f47b
agents/ai-red-teamer/guidance/role.md: 333156455463b525d8e998b9a229840fd0b9b56db97a59ac36857ec297083ade
agents/ai-red-teamer/runtime/mcp.json: f4b1c84549b5099a5ec7db9c69ea685e45a333d7d1b9437c4f504f2274f6a34a
agents/ai-red-teamer/runtime/pi-permission-config.json: a3e83156e746c81ad33a3318c3d7c80703abed46c6fa9d2ef9a8a30b7f8a8397
agents/ai-red-teamer/runtime/pi-permission-config.json: 8c7dbfa5b2f5c83bd97e930b1b79ae361d23033119bf005c604087dfda85f9a8
agents/ai-red-teamer/runtime/pi-settings.json: 42d649c0faf44344ef1bf015109a153ecc1872de08d993f58ee266683574f784
agents/ai-red-teamer/runtime/policy-enforcement.json: 201829bfd3fad2a454e0f7f62373c6a3a4ab6d0cec6cd47ff33e32d68bafaf99
agents/ai-red-teamer/runtime/policy-enforcement.json: e3e19b3fcc16dab2672fcabe084006ba7940e2d3431bc7b0a2533d9f5ba8e7ee
agents/ai-red-teamer/skills/auditing-mcp-servers-for-tool-poisoning/SKILL.md: 742ba124a9dd9d5109654fcf566cbec63e0d87f941cbd480ecbaeab596d38e22
agents/ai-red-teamer/skills/detecting-ai-model-prompt-injection-attacks/SKILL.md: c6be759524e385194b85e79b7d38545a9914c79d95c65ad946a2e0444527cdcd
agents/ai-red-teamer/skills/detecting-indirect-prompt-injection/SKILL.md: 9a79a873c014dc192c7cc627591a7273e7a5efcaae3263e0d9357ee41455226e
@@ -569,50 +569,50 @@ integrity:
agents/appsec-engineer/agent.yaml: 10bd12005d94f41f15e5beb9c84e7cb9bcc14a7580d4d9447c3387fe7d3490f7
agents/appsec-engineer/guidance/role.md: eb579b8b7d4ffd5d28f5ce33c833d86b6a76627b58b3edd5d681873c6799ff1d
agents/appsec-engineer/runtime/mcp.json: dff664dd98151d63624d7036dcbc6ace995af2c99eab34d3071d4f1eec990858
agents/appsec-engineer/runtime/pi-permission-config.json: e17e640fea243029bcaaf7011168c14e79666718d7bd8ad2c29d7dd01642ed17
agents/appsec-engineer/runtime/pi-permission-config.json: 69c2585c182845251f50a7e58362b011150e78aeb514b3c3cb641c2f486f2d2f
agents/appsec-engineer/runtime/pi-settings.json: 56d9cda1f64c99524b01561abd9db68e1ded823962fac7b79cf957c7fe7922be
agents/appsec-engineer/runtime/policy-enforcement.json: bd0f2c75e595fe60070321be505588ca1027a1f9e0e87d9531df9789b18a3cb3
agents/appsec-engineer/runtime/policy-enforcement.json: 18bd61d8ed494916beb272268e68dce2a93818e9de784155fc110006a9b942ea
agents/appsec-engineer/skills/owasp-reachability-triage/SKILL.md: 2e8f032a90fbbf9fa47ad4f10c29f74cb463a16958a8e43bf1cd02af16fd4ff2
agents/appsec-engineer/startup/context.md: 099e13ed7fc0d8336d887010bef211fdbf7e97f800d3c46e269686871c6762f0
agents/binary-reverse-eng/agent.yaml: 261aa908185649b3db9e988aa643316441eb71c73bb036afcb0989043e34ed05
agents/binary-reverse-eng/guidance/role.md: 796e73d471432a2b51f08913cceea03aa71d052ce1cc452df8d99acd9553cae7
agents/binary-reverse-eng/runtime/mcp.json: 74d26e46b9d0c31243b110ea3f46d01312ebbed958d16d7fb2933f3c0d273333
agents/binary-reverse-eng/runtime/pi-permission-config.json: 8008dc3c74f8f3c36bc4fc4a4be0d570cd4f80f64a1ec43b8c3ac6a8b2afb8d8
agents/binary-reverse-eng/runtime/pi-permission-config.json: 06bc365e8c7e5a7876ae1a641d5f5de6df55b2bd28c6c7a723410394388035d4
agents/binary-reverse-eng/runtime/pi-settings.json: 42d649c0faf44344ef1bf015109a153ecc1872de08d993f58ee266683574f784
agents/binary-reverse-eng/runtime/policy-enforcement.json: 7cdb2bce72d742a977be771da37fd05b4bc10a411cc475c46a504cf96ab50d80
agents/binary-reverse-eng/runtime/policy-enforcement.json: 0de2fc9de7075cce43960012c1d87b6fabb5f0436284ebe6728d3c7c6d10679e
agents/binary-reverse-eng/skills/radare2-defensive-disassembly/SKILL.md: 44607fb08d95a55234c11200e06ab5c51fe0507913d4aca196d7202c90e2f596
agents/binary-reverse-eng/skills/rea-evidence-based-decompilation/SKILL.md: 72d037437cf9bc393850d1eff5117230bcbd598258ff03b7a8b88ab916950d30
agents/binary-reverse-eng/startup/context.md: a58fee9618edc8d540decc3b82957adb91fc25903c9587e84652f6fb8cd90234
agents/cloud-sec-auditor/agent.yaml: f1c488b5edb3549eb9f167db63df521f0cb2bf13e67c78f81b0da3fb9ce49ffd
agents/cloud-sec-auditor/guidance/role.md: 41f00d4bca4a32b63e536fd9c70ff458ded5be38cd9421bab600da18598b0f7f
agents/cloud-sec-auditor/runtime/mcp.json: 0c8ddd8e6a54486e8efa4d90348f52a5317b3243560a4f4fe286effad1e5e373
agents/cloud-sec-auditor/runtime/pi-permission-config.json: abee4accad7938fd01b8f3c5842c9872ee4a56ac0aab8e6956548f39319f6be3
agents/cloud-sec-auditor/runtime/pi-permission-config.json: 3a01f10c4bdb3e19df7895fc7ac566547f416c8b3e495764c4b1e57efa736a60
agents/cloud-sec-auditor/runtime/pi-settings.json: 56d9cda1f64c99524b01561abd9db68e1ded823962fac7b79cf957c7fe7922be
agents/cloud-sec-auditor/runtime/policy-enforcement.json: b5ec2f9af49c3b50f3b167c3e624ebcf20acbddf065b2c89116c25391e572635
agents/cloud-sec-auditor/runtime/policy-enforcement.json: aace5f8e318bdb99b59e1624af08849cfb024ffd5736352766012eb971b354d2
agents/cloud-sec-auditor/skills/iam-least-privilege-audit/SKILL.md: 7f04f1c4c1db007c2cf3396d65254fcf22c109189c9d03d7a4a7f00c32f9170a
agents/cloud-sec-auditor/startup/context.md: 45e01e75b856b730ba63f061d84cdad5464fb5db21bdd32550cd1c7161850c9a
agents/compliance-auditor/agent.yaml: 4d484c8e88530c2e05faae18098799403e9828753cacd442376841fedf550013
agents/compliance-auditor/guidance/role.md: a0b9fd5eb55d1fd4467d52b4afe1bd5a9893f56d7b7ec018f877908454ddfb4c
agents/compliance-auditor/runtime/mcp.json: dd4f89175140cea1bffff81659645fd845386f0b48a8b3ba8e99d58df12609fd
agents/compliance-auditor/runtime/pi-permission-config.json: 90c996aa4a4dd631e2aa401d300d0b3455e3379784cec5f5e108aa8985bf9a0d
agents/compliance-auditor/runtime/pi-permission-config.json: b029792700fdae034c9cf15447424179d5eedce0869b0b889c5426d4e57eaa0d
agents/compliance-auditor/runtime/pi-settings.json: 56d9cda1f64c99524b01561abd9db68e1ded823962fac7b79cf957c7fe7922be
agents/compliance-auditor/runtime/policy-enforcement.json: 6992f64c3bb3a6e98695e733f84cc6493821ac2c56649831a96b11fc47962f6e
agents/compliance-auditor/runtime/policy-enforcement.json: 39590d4e82f8a8a05fdd717a3036a0530247afff7d999534b9fe5689c3758c6e
agents/compliance-auditor/skills/sbom-generation-and-license-audit/SKILL.md: 077033137006135c53214a4fd98affb402548c7e3bff7769ef347fa671fc8cdb
agents/compliance-auditor/startup/context.md: a4ea2fba53fb3ef0002ccce0812cce7feeee2e0732dad87b746dd8dcdb63cc79
agents/firmware-sec-analyst/agent.yaml: adf9c39628cf54c2da47c15de7e3a3d3caf36f880dad8f0347392539be6e40e3
agents/firmware-sec-analyst/guidance/role.md: fdd0fb74519a89b470d1fd52a5c23ea39c65efad7cd5f854a3ddfc916303db4e
agents/firmware-sec-analyst/runtime/mcp.json: 74d26e46b9d0c31243b110ea3f46d01312ebbed958d16d7fb2933f3c0d273333
agents/firmware-sec-analyst/runtime/pi-permission-config.json: c5528ca0d937e5b1089a4ac3a12190d32f5ef88430981d63b6850e9b6a5ac9cc
agents/firmware-sec-analyst/runtime/pi-permission-config.json: e0461dff671697802e69dd912cdda9116fb2ea60f2c512c8d3f7aebf075cd257
agents/firmware-sec-analyst/runtime/pi-settings.json: 56d9cda1f64c99524b01561abd9db68e1ded823962fac7b79cf957c7fe7922be
agents/firmware-sec-analyst/runtime/policy-enforcement.json: 7ad3a4aad6aac9d8ac4dbce9726d9353d3af4c88ad06975c1b222076812571fc
agents/firmware-sec-analyst/runtime/policy-enforcement.json: 2b1a08713c36b4757aeaff2a9e78aff7c0aa40d30f0b5d57069c8e747879440c
agents/firmware-sec-analyst/skills/firmware-extraction-and-hardening-audit/SKILL.md: 685b9523c26f8dd1f065b22f159be7b61f1b0d09609543401018e7571a028fb2
agents/firmware-sec-analyst/startup/context.md: 367bb017f4ee4f0b51a1fad4211f4e37b16007443fa00efc18dba8f8cbb4d56d
agents/threat-modeler/agent.yaml: 270a40ba9ac2739488f754e82c7607f8296ec65ac475111ff75a91a8222f074d
agents/threat-modeler/guidance/role.md: 1ff68992f2b6849a02ed859668fac1394ca166d603823a0ead7e7d6c29d90eb4
agents/threat-modeler/runtime/mcp.json: ecafd2a6e1b60bc5a3d3bc397326073c930c95630939d8d28d66b407ab237a0d
agents/threat-modeler/runtime/pi-permission-config.json: 1293c921c368c21f5bd801daa93b8c74ff6d3832a6d5230f321ef80cb4d4f931
agents/threat-modeler/runtime/pi-permission-config.json: 210f92a56e765e98017ea6d98b0dd46b7b854fe05d8be30d501f14c0493b1abb
agents/threat-modeler/runtime/pi-settings.json: 42d649c0faf44344ef1bf015109a153ecc1872de08d993f58ee266683574f784
agents/threat-modeler/runtime/policy-enforcement.json: 65ac35fa513abcedd4ead7549af9f6f7545012e668557004e264c90a1cde4db1
agents/threat-modeler/runtime/policy-enforcement.json: 2be98528b815704b786ad590a1057b9c401198ef37207dfb9fd9c3f027999e84
agents/threat-modeler/skills/stride-threat-modeling/SKILL.md: 7f7bdbb8aa2cab064c18573e9a946bffa9f7dd21f0fb254dd4a175ff9a4a3053
agents/threat-modeler/startup/context.md: 5eba727b91471a13478048345581db98ee31a5663e6545d7fcac7297cfcc7e6e
configurations.yaml: 20c35e92d8d48958eec90e8d5004784b5c976e93106fc0765c3dfde74b0f076e
@@ -24,7 +24,17 @@
"git diff --stat*": "allow",
"git diff --name-only*": "allow",
"git log --oneline*": "allow",
"git show --stat*": "allow"
"git show --stat*": "allow",
"*--output*": "deny",
"*;*": "deny",
"*|*": "deny",
"*>*": "deny",
"*<*": "deny",
"*&*": "deny",
"*`*": "deny",
"*$*": "deny",
"*(*": "deny",
"*)*": "deny"
},
"path": {
"*": "allow",
@@ -31,7 +31,17 @@
"git diff --stat*": "allow",
"git diff --name-only*": "allow",
"git log --oneline*": "allow",
"git show --stat*": "allow"
"git show --stat*": "allow",
"*--output*": "deny",
"*;*": "deny",
"*|*": "deny",
"*>*": "deny",
"*<*": "deny",
"*&*": "deny",
"*`*": "deny",
"*$*": "deny",
"*(*": "deny",
"*)*": "deny"
},
"path": {
"*": "allow",
@@ -26,7 +26,17 @@
"git diff --stat*": "allow",
"git diff --name-only*": "allow",
"git log --oneline*": "allow",
"git show --stat*": "allow"
"git show --stat*": "allow",
"*--output*": "deny",
"*;*": "deny",
"*|*": "deny",
"*>*": "deny",
"*<*": "deny",
"*&*": "deny",
"*`*": "deny",
"*$*": "deny",
"*(*": "deny",
"*)*": "deny"
},
"path": {
"*": "allow",
@@ -33,7 +33,17 @@
"git diff --stat*": "allow",
"git diff --name-only*": "allow",
"git log --oneline*": "allow",
"git show --stat*": "allow"
"git show --stat*": "allow",
"*--output*": "deny",
"*;*": "deny",
"*|*": "deny",
"*>*": "deny",
"*<*": "deny",
"*&*": "deny",
"*`*": "deny",
"*$*": "deny",
"*(*": "deny",
"*)*": "deny"
},
"path": {
"*": "allow",
@@ -24,7 +24,17 @@
"git diff --stat*": "allow",
"git diff --name-only*": "allow",
"git log --oneline*": "allow",
"git show --stat*": "allow"
"git show --stat*": "allow",
"*--output*": "deny",
"*;*": "deny",
"*|*": "deny",
"*>*": "deny",
"*<*": "deny",
"*&*": "deny",
"*`*": "deny",
"*$*": "deny",
"*(*": "deny",
"*)*": "deny"
},
"path": {
"*": "allow",
@@ -31,7 +31,17 @@
"git diff --stat*": "allow",
"git diff --name-only*": "allow",
"git log --oneline*": "allow",
"git show --stat*": "allow"
"git show --stat*": "allow",
"*--output*": "deny",
"*;*": "deny",
"*|*": "deny",
"*>*": "deny",
"*<*": "deny",
"*&*": "deny",
"*`*": "deny",
"*$*": "deny",
"*(*": "deny",
"*)*": "deny"
},
"path": {
"*": "allow",
@@ -33,7 +33,17 @@
"git diff --stat*": "allow",
"git diff --name-only*": "allow",
"git log --oneline*": "allow",
"git show --stat*": "allow"
"git show --stat*": "allow",
"*--output*": "deny",
"*;*": "deny",
"*|*": "deny",
"*>*": "deny",
"*<*": "deny",
"*&*": "deny",
"*`*": "deny",
"*$*": "deny",
"*(*": "deny",
"*)*": "deny"
},
"path": {
"*": "allow",
@@ -42,7 +42,17 @@
"git diff --stat*": "allow",
"git diff --name-only*": "allow",
"git log --oneline*": "allow",
"git show --stat*": "allow"
"git show --stat*": "allow",
"*--output*": "deny",
"*;*": "deny",
"*|*": "deny",
"*>*": "deny",
"*<*": "deny",
"*&*": "deny",
"*`*": "deny",
"*$*": "deny",
"*(*": "deny",
"*)*": "deny"
},
"path": {
"*": "allow",
@@ -25,7 +25,17 @@
"git diff --stat*": "allow",
"git diff --name-only*": "allow",
"git log --oneline*": "allow",
"git show --stat*": "allow"
"git show --stat*": "allow",
"*--output*": "deny",
"*;*": "deny",
"*|*": "deny",
"*>*": "deny",
"*<*": "deny",
"*&*": "deny",
"*`*": "deny",
"*$*": "deny",
"*(*": "deny",
"*)*": "deny"
},
"path": {
"*": "allow",
@@ -32,7 +32,17 @@
"git diff --stat*": "allow",
"git diff --name-only*": "allow",
"git log --oneline*": "allow",
"git show --stat*": "allow"
"git show --stat*": "allow",
"*--output*": "deny",
"*;*": "deny",
"*|*": "deny",
"*>*": "deny",
"*<*": "deny",
"*&*": "deny",
"*`*": "deny",
"*$*": "deny",
"*(*": "deny",
"*)*": "deny"
},
"path": {
"*": "allow",
@@ -24,7 +24,17 @@
"git diff --stat*": "allow",
"git diff --name-only*": "allow",
"git log --oneline*": "allow",
"git show --stat*": "allow"
"git show --stat*": "allow",
"*--output*": "deny",
"*;*": "deny",
"*|*": "deny",
"*>*": "deny",
"*<*": "deny",
"*&*": "deny",
"*`*": "deny",
"*$*": "deny",
"*(*": "deny",
"*)*": "deny"
},
"path": {
"*": "allow",
@@ -31,7 +31,17 @@
"git diff --stat*": "allow",
"git diff --name-only*": "allow",
"git log --oneline*": "allow",
"git show --stat*": "allow"
"git show --stat*": "allow",
"*--output*": "deny",
"*;*": "deny",
"*|*": "deny",
"*>*": "deny",
"*<*": "deny",
"*&*": "deny",
"*`*": "deny",
"*$*": "deny",
"*(*": "deny",
"*)*": "deny"
},
"path": {
"*": "allow",
+12 -12
View File
@@ -546,49 +546,49 @@ integrity:
agents/exec-director/agent.yaml: d079eca866d691113fdc7e79374598343fff929319fa32a5130a6b41a664a8f0
agents/exec-director/guidance/role.md: 5e54c67fa667bff615d5da94d436d42e3392819b923c1824760194a5e0d79920
agents/exec-director/runtime/mcp.json: a8eee8c8642d8778dfe4a50b28701b04560214e5375e8599247fc83776ce8ce9
agents/exec-director/runtime/pi-permission-config.json: 177e631a49be8efe68c072a0f19a8bfb2f0fcf3f39ed31f36450706f84deab2f
agents/exec-director/runtime/pi-permission-config.json: f6c001b6998fd1bb04931c5e7c5275ecb11df939ae538ce7f2057eb824549bf1
agents/exec-director/runtime/pi-settings.json: 42d649c0faf44344ef1bf015109a153ecc1872de08d993f58ee266683574f784
agents/exec-director/runtime/policy-enforcement.json: e4f05134a82950344e50982cd891b9e85415d5fdd193786b0e5f18f11c37c3e5
agents/exec-director/runtime/policy-enforcement.json: 49d906b8ad23fbd2d839a6bbabce7772eea49722218a6343bdb98067e201c502
agents/exec-director/skills/executive-okr-decomposition/SKILL.md: 3de0bb5e99231483c74f3b19c05f6502ec6635e55868572d0645092a991cac41
agents/exec-director/startup/context.md: 9027565a83a535c015f861ad0b9ddbbfad730acecb28c602d8548f1c38672332
agents/git-drift-coord/agent.yaml: 027b8dce7cc4e77da1a1c66899e32f74c63c3dda9b0a74e7a97d7276095e25bf
agents/git-drift-coord/guidance/role.md: 2d373687d9fdb1a66a91057a640025f6cebc5f7a79fb9bbbd0fb68090178f248
agents/git-drift-coord/runtime/mcp.json: 29a117630a6b587fb3a7f02b8a3a4d0b0cbc9d7f1f7bdbfdc653aba3ed482c04
agents/git-drift-coord/runtime/pi-permission-config.json: 53c04d5efb72df9dcfb85ad9b36c16e26a5c0a671da2941b6c447680cb3c15a5
agents/git-drift-coord/runtime/pi-permission-config.json: 6aa58834bcf22050ae811839215d466331cc8643629a88c2a9e2787d366fc381
agents/git-drift-coord/runtime/pi-settings.json: 56d9cda1f64c99524b01561abd9db68e1ded823962fac7b79cf957c7fe7922be
agents/git-drift-coord/runtime/policy-enforcement.json: c4920dbaeaf3fbe11ca76b607135ff52202df1e572d255d98d5f9d815d93cd0d
agents/git-drift-coord/runtime/policy-enforcement.json: e21aaee6d475eb696b282a8e83d6df101f1e7f965a81363c838cc8a536ffb761
agents/git-drift-coord/skills/worktree-rebase-orchestration/SKILL.md: 5d4f609e77195b9ca141aa79bf0ae51f4a7939e80c129e8f50a4a986ebccc713
agents/git-drift-coord/startup/context.md: 9afd48f6da615e38db1cdafb73d286e272898c971bad3b3ae3937fb3ada300d5
agents/product-director/agent.yaml: 7820dfcfe67b1bb07ea5c35fdf0bcd166d69b77e3ef78d7e814a5694a96ce0f5
agents/product-director/guidance/role.md: 71de7a4c1bcbc10c2a8677c24af2bf330a53c8fd5c05d6d0aac92a29ed7a927c
agents/product-director/runtime/mcp.json: a8eee8c8642d8778dfe4a50b28701b04560214e5375e8599247fc83776ce8ce9
agents/product-director/runtime/pi-permission-config.json: 58e62d73ea40f3f7bc57073c376d48ac030c5eb7c7aa83c2e6341aa543a67224
agents/product-director/runtime/pi-permission-config.json: 7bf6701cc7bb0fd8b1157f0c17519344d397b74d6cc3fde9c00645eeae00e907
agents/product-director/runtime/pi-settings.json: 56d9cda1f64c99524b01561abd9db68e1ded823962fac7b79cf957c7fe7922be
agents/product-director/runtime/policy-enforcement.json: 37d0eb24b36518bcb134f3500efc4e0f96b4257dfae5952fcd0f84f4ca516337
agents/product-director/runtime/policy-enforcement.json: e6dba1523eb94990a699c74f9ee060edff2f6aa9d86e4d7c56755587d8778005
agents/product-director/skills/epic-roadmap-authoring/SKILL.md: f9c668cd615d53e4d394a3f83cf6a8cb723fd7d2b482caaf88e0fb0821d565f7
agents/product-director/startup/context.md: 09b0db59249896603f8d66fbe75cfe7a45a5ce03ceffe2ea41672ab3b8d1d82d
agents/system-architect/agent.yaml: 83afbc50e570465b0e00f29d83daeccc968e0e646aa015236b2aef25db6f5337
agents/system-architect/guidance/role.md: b4b371baf244073be5b19ccc463574215c82887cef5da2a708eed749fe9a2056
agents/system-architect/runtime/mcp.json: f4b1c84549b5099a5ec7db9c69ea685e45a333d7d1b9437c4f504f2274f6a34a
agents/system-architect/runtime/pi-permission-config.json: ebe0f4b3f37a3c365c630e00991b619f8db23458b79a062eb417a157c704fb3b
agents/system-architect/runtime/pi-permission-config.json: cb5bf3dd2c231bbd1b85f65f46324e99fde9e884aaf379cde8359470e0444a80
agents/system-architect/runtime/pi-settings.json: 42d649c0faf44344ef1bf015109a153ecc1872de08d993f58ee266683574f784
agents/system-architect/runtime/policy-enforcement.json: f5b2ac8c1b12deebc3eadf52dc10b55f3b093eb0b8f1c5f08b7b8f4e49e3834d
agents/system-architect/runtime/policy-enforcement.json: 6c9089142631bddbfabf443e56cef710320463d1e713418d0c4aa88ccf0c30d8
agents/system-architect/skills/madr-architecture-decision/SKILL.md: 4246a7bbc1ba4618648da83806c9069e0764004c990cf8130322688a279535b9
agents/system-architect/startup/context.md: aa8f9ceaeb9b0dfea8964fd2c634051362464dfbca589366496c23d430cdbcbb
agents/tech-docs-lead/agent.yaml: 632e72f5a90796de70fbe452b1f66adea28d749bcabae805e3c795ca72e38674
agents/tech-docs-lead/guidance/role.md: e0fcec039f3700668edab5c99d8ead5293277ac006df05c6ebae87106795a509
agents/tech-docs-lead/runtime/mcp.json: 29a117630a6b587fb3a7f02b8a3a4d0b0cbc9d7f1f7bdbfdc653aba3ed482c04
agents/tech-docs-lead/runtime/pi-permission-config.json: da3b62100af3b93aa6a23096b672f886b7bfede2a66f030ba931d4de82f5429e
agents/tech-docs-lead/runtime/pi-permission-config.json: 8ee80e664fba2fdc37a885ce7343978a8ac79cc069a1200640b37af0c9c4a144
agents/tech-docs-lead/runtime/pi-settings.json: 56d9cda1f64c99524b01561abd9db68e1ded823962fac7b79cf957c7fe7922be
agents/tech-docs-lead/runtime/policy-enforcement.json: 62bde2a21867a6fc89f767b901442983457f48f66950922f8e191318f2659d4c
agents/tech-docs-lead/runtime/policy-enforcement.json: b6175081599c4967799224fea548df5b3782ad7a91a789753c84244cd90cd7e6
agents/tech-docs-lead/skills/docs-as-code-synchronization/SKILL.md: efad3bf18865cc9b17599c95418af0c2101d6c1dd04a9d97fcad545e18aabc81
agents/tech-docs-lead/startup/context.md: 2519766fda19520a8ce37427a90a9ab0534314250f9a940c44dde601d11fc9aa
agents/tpm-scrum-lead/agent.yaml: 3212bda984360266f3dca9b56f313531afb4ff8be0955a04da70d89f60add7cf
agents/tpm-scrum-lead/guidance/role.md: 5da7b7de418fad473a22a2e643a4bf33174fb9f22d33dabcd4635d9c6d4dcd15
agents/tpm-scrum-lead/runtime/mcp.json: a8eee8c8642d8778dfe4a50b28701b04560214e5375e8599247fc83776ce8ce9
agents/tpm-scrum-lead/runtime/pi-permission-config.json: d81761bafb036f2d46d3630d92ae3f229112e402038538d65c814ab713cbb07d
agents/tpm-scrum-lead/runtime/pi-permission-config.json: 3c5bb87a820b0406b1893cc2f048ac8646d850db4d4b272b1e9794ddf4141be5
agents/tpm-scrum-lead/runtime/pi-settings.json: 56d9cda1f64c99524b01561abd9db68e1ded823962fac7b79cf957c7fe7922be
agents/tpm-scrum-lead/runtime/policy-enforcement.json: bf461a01dd6d32b96e0208cc24968fb81fc0ce9a772b040f9a30877ae5d064dd
agents/tpm-scrum-lead/runtime/policy-enforcement.json: 92eb33d437392d936f3a1dceb773e7975637cfe6fbf4cf0835cc0a138998f1c7
agents/tpm-scrum-lead/skills/planning-with-files/SKILL.md: 46aad3adb80dffe595b5d7ae23af64861dc6af879d3471afb216676dd60bf8ab
agents/tpm-scrum-lead/skills/sprint-ticket-decomposition/SKILL.md: 49735479a265ca6e11e978621f42d0e6b0143237c07bf252d71040012c402a9b
agents/tpm-scrum-lead/startup/context.md: 0a4c98622a790a49df000317cc8359595bf78c3de520293ea2f4a1857d7bf575
@@ -25,7 +25,17 @@
"git diff --stat*": "allow",
"git diff --name-only*": "allow",
"git log --oneline*": "allow",
"git show --stat*": "allow"
"git show --stat*": "allow",
"*--output*": "deny",
"*;*": "deny",
"*|*": "deny",
"*>*": "deny",
"*<*": "deny",
"*&*": "deny",
"*`*": "deny",
"*$*": "deny",
"*(*": "deny",
"*)*": "deny"
},
"path": {
"*": "allow",
@@ -32,7 +32,17 @@
"git diff --stat*": "allow",
"git diff --name-only*": "allow",
"git log --oneline*": "allow",
"git show --stat*": "allow"
"git show --stat*": "allow",
"*--output*": "deny",
"*;*": "deny",
"*|*": "deny",
"*>*": "deny",
"*<*": "deny",
"*&*": "deny",
"*`*": "deny",
"*$*": "deny",
"*(*": "deny",
"*)*": "deny"
},
"path": {
"*": "allow",
@@ -23,7 +23,17 @@
"git diff --stat*": "allow",
"git diff --name-only*": "allow",
"git log --oneline*": "allow",
"git show --stat*": "allow"
"git show --stat*": "allow",
"*--output*": "deny",
"*;*": "deny",
"*|*": "deny",
"*>*": "deny",
"*<*": "deny",
"*&*": "deny",
"*`*": "deny",
"*$*": "deny",
"*(*": "deny",
"*)*": "deny"
},
"path": {
"*": "allow",
@@ -30,7 +30,17 @@
"git diff --stat*": "allow",
"git diff --name-only*": "allow",
"git log --oneline*": "allow",
"git show --stat*": "allow"
"git show --stat*": "allow",
"*--output*": "deny",
"*;*": "deny",
"*|*": "deny",
"*>*": "deny",
"*<*": "deny",
"*&*": "deny",
"*`*": "deny",
"*$*": "deny",
"*(*": "deny",
"*)*": "deny"
},
"path": {
"*": "allow",
@@ -35,7 +35,17 @@
"git diff --stat*": "allow",
"git diff --name-only*": "allow",
"git log --oneline*": "allow",
"git show --stat*": "allow"
"git show --stat*": "allow",
"*--output*": "deny",
"*;*": "deny",
"*|*": "deny",
"*>*": "deny",
"*<*": "deny",
"*&*": "deny",
"*`*": "deny",
"*$*": "deny",
"*(*": "deny",
"*)*": "deny"
},
"path": {
"*": "allow",
@@ -44,7 +44,17 @@
"git diff --stat*": "allow",
"git diff --name-only*": "allow",
"git log --oneline*": "allow",
"git show --stat*": "allow"
"git show --stat*": "allow",
"*--output*": "deny",
"*;*": "deny",
"*|*": "deny",
"*>*": "deny",
"*<*": "deny",
"*&*": "deny",
"*`*": "deny",
"*$*": "deny",
"*(*": "deny",
"*)*": "deny"
},
"path": {
"*": "allow",
@@ -35,7 +35,17 @@
"git diff --stat*": "allow",
"git diff --name-only*": "allow",
"git log --oneline*": "allow",
"git show --stat*": "allow"
"git show --stat*": "allow",
"*--output*": "deny",
"*;*": "deny",
"*|*": "deny",
"*>*": "deny",
"*<*": "deny",
"*&*": "deny",
"*`*": "deny",
"*$*": "deny",
"*(*": "deny",
"*)*": "deny"
},
"path": {
"*": "allow",
@@ -44,7 +44,17 @@
"git diff --stat*": "allow",
"git diff --name-only*": "allow",
"git log --oneline*": "allow",
"git show --stat*": "allow"
"git show --stat*": "allow",
"*--output*": "deny",
"*;*": "deny",
"*|*": "deny",
"*>*": "deny",
"*<*": "deny",
"*&*": "deny",
"*`*": "deny",
"*$*": "deny",
"*(*": "deny",
"*)*": "deny"
},
"path": {
"*": "allow",
@@ -37,7 +37,17 @@
"git diff --stat*": "allow",
"git diff --name-only*": "allow",
"git log --oneline*": "allow",
"git show --stat*": "allow"
"git show --stat*": "allow",
"*--output*": "deny",
"*;*": "deny",
"*|*": "deny",
"*>*": "deny",
"*<*": "deny",
"*&*": "deny",
"*`*": "deny",
"*$*": "deny",
"*(*": "deny",
"*)*": "deny"
},
"path": {
"*": "allow",
@@ -46,7 +46,17 @@
"git diff --stat*": "allow",
"git diff --name-only*": "allow",
"git log --oneline*": "allow",
"git show --stat*": "allow"
"git show --stat*": "allow",
"*--output*": "deny",
"*;*": "deny",
"*|*": "deny",
"*>*": "deny",
"*<*": "deny",
"*&*": "deny",
"*`*": "deny",
"*$*": "deny",
"*(*": "deny",
"*)*": "deny"
},
"path": {
"*": "allow",
@@ -36,7 +36,17 @@
"git diff --stat*": "allow",
"git diff --name-only*": "allow",
"git log --oneline*": "allow",
"git show --stat*": "allow"
"git show --stat*": "allow",
"*--output*": "deny",
"*;*": "deny",
"*|*": "deny",
"*>*": "deny",
"*<*": "deny",
"*&*": "deny",
"*`*": "deny",
"*$*": "deny",
"*(*": "deny",
"*)*": "deny"
},
"path": {
"*": "allow",
@@ -45,7 +45,17 @@
"git diff --stat*": "allow",
"git diff --name-only*": "allow",
"git log --oneline*": "allow",
"git show --stat*": "allow"
"git show --stat*": "allow",
"*--output*": "deny",
"*;*": "deny",
"*|*": "deny",
"*>*": "deny",
"*<*": "deny",
"*&*": "deny",
"*`*": "deny",
"*$*": "deny",
"*(*": "deny",
"*)*": "deny"
},
"path": {
"*": "allow",
@@ -34,7 +34,17 @@
"git diff --stat*": "allow",
"git diff --name-only*": "allow",
"git log --oneline*": "allow",
"git show --stat*": "allow"
"git show --stat*": "allow",
"*--output*": "deny",
"*;*": "deny",
"*|*": "deny",
"*>*": "deny",
"*<*": "deny",
"*&*": "deny",
"*`*": "deny",
"*$*": "deny",
"*(*": "deny",
"*)*": "deny"
},
"path": {
"*": "allow",
@@ -43,7 +43,17 @@
"git diff --stat*": "allow",
"git diff --name-only*": "allow",
"git log --oneline*": "allow",
"git show --stat*": "allow"
"git show --stat*": "allow",
"*--output*": "deny",
"*;*": "deny",
"*|*": "deny",
"*>*": "deny",
"*<*": "deny",
"*&*": "deny",
"*`*": "deny",
"*$*": "deny",
"*(*": "deny",
"*)*": "deny"
},
"path": {
"*": "allow",
@@ -39,7 +39,17 @@
"git diff --stat*": "allow",
"git diff --name-only*": "allow",
"git log --oneline*": "allow",
"git show --stat*": "allow"
"git show --stat*": "allow",
"*--output*": "deny",
"*;*": "deny",
"*|*": "deny",
"*>*": "deny",
"*<*": "deny",
"*&*": "deny",
"*`*": "deny",
"*$*": "deny",
"*(*": "deny",
"*)*": "deny"
},
"path": {
"*": "allow",
@@ -48,7 +48,17 @@
"git diff --stat*": "allow",
"git diff --name-only*": "allow",
"git log --oneline*": "allow",
"git show --stat*": "allow"
"git show --stat*": "allow",
"*--output*": "deny",
"*;*": "deny",
"*|*": "deny",
"*>*": "deny",
"*<*": "deny",
"*&*": "deny",
"*`*": "deny",
"*$*": "deny",
"*(*": "deny",
"*)*": "deny"
},
"path": {
"*": "allow",
@@ -37,7 +37,17 @@
"git diff --stat*": "allow",
"git diff --name-only*": "allow",
"git log --oneline*": "allow",
"git show --stat*": "allow"
"git show --stat*": "allow",
"*--output*": "deny",
"*;*": "deny",
"*|*": "deny",
"*>*": "deny",
"*<*": "deny",
"*&*": "deny",
"*`*": "deny",
"*$*": "deny",
"*(*": "deny",
"*)*": "deny"
},
"path": {
"*": "allow",
@@ -46,7 +46,17 @@
"git diff --stat*": "allow",
"git diff --name-only*": "allow",
"git log --oneline*": "allow",
"git show --stat*": "allow"
"git show --stat*": "allow",
"*--output*": "deny",
"*;*": "deny",
"*|*": "deny",
"*>*": "deny",
"*<*": "deny",
"*&*": "deny",
"*`*": "deny",
"*$*": "deny",
"*(*": "deny",
"*)*": "deny"
},
"path": {
"*": "allow",
@@ -25,7 +25,17 @@
"git diff --stat*": "allow",
"git diff --name-only*": "allow",
"git log --oneline*": "allow",
"git show --stat*": "allow"
"git show --stat*": "allow",
"*--output*": "deny",
"*;*": "deny",
"*|*": "deny",
"*>*": "deny",
"*<*": "deny",
"*&*": "deny",
"*`*": "deny",
"*$*": "deny",
"*(*": "deny",
"*)*": "deny"
},
"path": {
"*": "allow",
@@ -32,7 +32,17 @@
"git diff --stat*": "allow",
"git diff --name-only*": "allow",
"git log --oneline*": "allow",
"git show --stat*": "allow"
"git show --stat*": "allow",
"*--output*": "deny",
"*;*": "deny",
"*|*": "deny",
"*>*": "deny",
"*<*": "deny",
"*&*": "deny",
"*`*": "deny",
"*$*": "deny",
"*(*": "deny",
"*)*": "deny"
},
"path": {
"*": "allow",
@@ -24,7 +24,17 @@
"git diff --stat*": "allow",
"git diff --name-only*": "allow",
"git log --oneline*": "allow",
"git show --stat*": "allow"
"git show --stat*": "allow",
"*--output*": "deny",
"*;*": "deny",
"*|*": "deny",
"*>*": "deny",
"*<*": "deny",
"*&*": "deny",
"*`*": "deny",
"*$*": "deny",
"*(*": "deny",
"*)*": "deny"
},
"path": {
"*": "allow",
@@ -31,7 +31,17 @@
"git diff --stat*": "allow",
"git diff --name-only*": "allow",
"git log --oneline*": "allow",
"git show --stat*": "allow"
"git show --stat*": "allow",
"*--output*": "deny",
"*;*": "deny",
"*|*": "deny",
"*>*": "deny",
"*<*": "deny",
"*&*": "deny",
"*`*": "deny",
"*$*": "deny",
"*(*": "deny",
"*)*": "deny"
},
"path": {
"*": "allow",
Loaded 100 of 352 files, more files were not shown because too many files have changed in this diff. Show more