Skip to content

fix(add-orchestrator): realign allowed-tools with skill bodies (#7) - #9

Merged
vybe merged 1 commit into
mainfrom
fix/7-allowed-tools-grants
Aug 17, 2026
Merged

fix(add-orchestrator): realign allowed-tools with skill bodies (#7)#9
vybe merged 1 commit into
mainfrom
fix/7-allowed-tools-grants

Conversation

@vybe

@vybe vybe commented Aug 17, 2026

Copy link
Copy Markdown
Contributor

Closes the two concrete grant-vs-body drift fixes in issue #7. Minimal, per Eugene's ruling (adopt with minimal necessary changes; deliver as a PR).

What changed

  • discover-agents v1.7→1.8 — add mcp__trinity__report to allowed-tools. The Step 7 fleet_scan report call was already in the body but absent from the grant, so under tool-enforcement the report silently never published (the guard swallowed the tool-not-found error). Grant now matches the body.
  • orchestrate v1.13→1.14 — drop the three vestigial schedule tools (create_agent_schedule / delete_agent_schedule / list_agent_schedules). Zero positive body usage remains since the v1.7 watchdog moved fully to set_reminder/cancel_reminder (the only surviving mention is the negative "no schedule litter, no delete_agent_schedule"). Least-privilege trim.
  • Bundle add-orchestrator 1.20→1.21; agent-dev plugin 1.14.0→1.14.1; changelogs prepended on all three.

Both are hygiene fixes with no behaviour change where the tool was already effectively permitted.

Deliberately left out (to keep it minimal)

Verification

Deterministic gates checked on the changed files: fence integrity (even), valid plugin.json, secret scan clean.

Refs #7

Two grant-vs-body drift fixes in the add-orchestrator bundle, both
least-privilege / no behaviour change:

- discover-agents v1.7→1.8: add mcp__trinity__report. The Step 7
  fleet_scan report call is in the body but was absent from the grant,
  so under tool-enforcement it silently never published (the guard
  swallowed the tool-not-found error).
- orchestrate v1.13→1.14: drop the three vestigial schedule tools
  (create/delete/list_agent_schedule). Zero positive body usage remains
  since the v1.7 watchdog moved fully to set_reminder/cancel_reminder.

Bundle add-orchestrator 1.20→1.21; agent-dev plugin 1.14.0→1.14.1.

Deliberately scoped to the two concrete grant fixes. The allowed-tools↔body
lint gate proposed in #7 is deferred to its own PR/follow-up (new
cross-skill enforcement machinery, not coupled to this defect fix).

Refs #7

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@vybe
vybe merged commit e65feee into main Aug 17, 2026
@vybe
vybe deleted the fix/7-allowed-tools-grants branch August 17, 2026 14:12
vybe pushed a commit that referenced this pull request Aug 17, 2026
…ode + overwrite-prompt wiring (#8)

Re-running /add-orchestrator offered overwrite/skip/cancel per skill with no
version comparison, no diff, and no detection of local customization. Two real
failures came from that: a hand-written routing directive that a plain overwrite
would have silently destroyed, and two skills sitting ahead of the bundle for
weeks with nothing comparing the two directions (#5).

Add a read-only `--check` mode that, per installed runtime skill, reports the
three states — installed < bundled (upgrade available), installed > bundled
(back-port candidate), installed == bundled but content differs (local
customization) — in the canon-doctor PASS/WARN/FAIL shape with a one-line
fleet-readable verdict. Step 4's per-skill overwrite prompt calls the same
comparison, so the warning arrives at the moment of decision, not after.

Deliberately scoped to add-orchestrator's own bundle and stateless (no new
on-disk registry). Plugin-framework-wide version filed as a follow-up.

add-orchestrator 1.20 -> 1.22 (skips 1.21, reserved for open PR #9); agent-dev
plugin 1.14.0 -> 1.14.2 (skips 1.14.1, reserved for #9).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
vybe added a commit that referenced this pull request Aug 17, 2026
…ode + overwrite-prompt wiring (#8) (#13)

Re-running /add-orchestrator offered overwrite/skip/cancel per skill with no
version comparison, no diff, and no detection of local customization. Two real
failures came from that: a hand-written routing directive that a plain overwrite
would have silently destroyed, and two skills sitting ahead of the bundle for
weeks with nothing comparing the two directions (#5).

Add a read-only `--check` mode that, per installed runtime skill, reports the
three states — installed < bundled (upgrade available), installed > bundled
(back-port candidate), installed == bundled but content differs (local
customization) — in the canon-doctor PASS/WARN/FAIL shape with a one-line
fleet-readable verdict. Step 4's per-skill overwrite prompt calls the same
comparison, so the warning arrives at the moment of decision, not after.

Deliberately scoped to add-orchestrator's own bundle and stateless (no new
on-disk registry). Plugin-framework-wide version filed as a follow-up.

add-orchestrator 1.20 -> 1.22 (skips 1.21, reserved for open PR #9); agent-dev
plugin 1.14.0 -> 1.14.2 (skips 1.14.1, reserved for #9).

Co-authored-by: Trinity PM Agent <trinity-pm@abilityai.dev>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
vybe pushed a commit that referenced this pull request Aug 17, 2026
#5)

Second half of the #5 back-port, on top of the sync-fleet-to-head commit.

profile-fleet 1.4 → 1.6 (from Abilityai/corbin-internal@c8dfad4):
- v1.5 autonomy-toggle cross-check in Step 3 (enabled schedules +
  autonomy_enabled:false = silent no-op) — grants get_schedule_executions
  to keep allowed-tools ↔ body aligned
- v1.6 --autonomous run mode (per-skill; convention tracked in #6)

Universalized, not swapped: dropped the corbin Step 0 refresh_workspace.sh;
re-homed the autonomous correction queue from corbin's
fleet-gap-analysis/status.yaml onto the bundle's own /fleet-reconcile
convention (.claude/skills/profile-fleet/status.yaml, which fleet-reconcile
already globs). Kept generic teammate/example/self-reference text.

Bundle mechanics:
- add-orchestrator SKILL.md 1.20 → 1.23 (takes 1.23 above the in-flight
  1.21 for PR #7/#9 and 1.22 for issue #8; changelog prepended)
- agent-dev plugin 1.14.0 → 1.14.3

Gates: fence integrity even, name≡directory, plugin.json valid, secret
scan clean, no corbin-specific strings in either skill body.

Refs #5

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
vybe added a commit that referenced this pull request Aug 17, 2026
… & profile-fleet (#5) (#10)

* back-port(sync-fleet-to-head): 1.0 → 1.4 — universalized field-hardening (#5)

Back-ports the generalizable v1.1–1.4 deltas from the production
orchestrator's deployed copy (Abilityai/corbin-internal@c8dfad4) into the
add-orchestrator bundle template:
- v1.1 get_git_sync_state post-pull cache-lag note
- v1.2 two 409 subtypes (unstaged vs unmerged files)
- v1.3 400 submodule-fetch Error Recovery row
- v1.4 --autonomous run mode (per-skill; convention tracked in #6)

Universalized/dropped the corbin-specific scaffolding: the Step 0
refresh_workspace.sh call, the o.nikitin/k.sivak teammate names, the
corbin fleet example table, the ref:-only trinity_name narrowing, and the
corbin-20 self-reference. Changelog is append-only.

Refs #5

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* back-port(profile-fleet): 1.4 → 1.6 + bundle mechanics — universalized (#5)

Second half of the #5 back-port, on top of the sync-fleet-to-head commit.

profile-fleet 1.4 → 1.6 (from Abilityai/corbin-internal@c8dfad4):
- v1.5 autonomy-toggle cross-check in Step 3 (enabled schedules +
  autonomy_enabled:false = silent no-op) — grants get_schedule_executions
  to keep allowed-tools ↔ body aligned
- v1.6 --autonomous run mode (per-skill; convention tracked in #6)

Universalized, not swapped: dropped the corbin Step 0 refresh_workspace.sh;
re-homed the autonomous correction queue from corbin's
fleet-gap-analysis/status.yaml onto the bundle's own /fleet-reconcile
convention (.claude/skills/profile-fleet/status.yaml, which fleet-reconcile
already globs). Kept generic teammate/example/self-reference text.

Bundle mechanics:
- add-orchestrator SKILL.md 1.20 → 1.23 (takes 1.23 above the in-flight
  1.21 for PR #7/#9 and 1.22 for issue #8; changelog prepended)
- agent-dev plugin 1.14.0 → 1.14.3

Gates: fence integrity even, name≡directory, plugin.json valid, secret
scan clean, no corbin-specific strings in either skill body.

Refs #5

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

---------

Co-authored-by: Trinity Agent (trinity-pm) <trinity-pm@ability.ai>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
vybe pushed a commit that referenced this pull request Aug 17, 2026
)

Promote --autonomous from the per-skill patches back-ported in #5
(sync-fleet-to-head v1.4, profile-fleet v1.6) to a documented
bundle-wide/marketplace-wide run-mode convention.

New "Run-mode convention — --autonomous for gated skills on crons"
section in add-orchestrator SKILL.md is the canonical contract the
per-skill instances now point at: mode from $ARGUMENTS never caller
prose; never call AskUserQuestion; take the safe default at each gate;
never take a destructive/irreversible path a gate protected; a
non-trivial decision becomes a needs-attention line, not a guess. The
earning invariant: every below-the-gate action is non-destructive by
construction.

Enforcement is mechanical: /audit-wizards flags any automation: gated
skill listed in a schedules: block without a declared autonomous mode
(the check that would have caught ruby's /video-intake).

add-orchestrator 1.20 -> 1.24, agent-dev plugin 1.14.0 -> 1.14.4
(above the in-flight #9/#8/#5 numbers to avoid collision).

Closes #6

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
vybe added a commit that referenced this pull request Aug 17, 2026
) (#14)

Promote --autonomous from the per-skill patches back-ported in #5
(sync-fleet-to-head v1.4, profile-fleet v1.6) to a documented
bundle-wide/marketplace-wide run-mode convention.

New "Run-mode convention — --autonomous for gated skills on crons"
section in add-orchestrator SKILL.md is the canonical contract the
per-skill instances now point at: mode from $ARGUMENTS never caller
prose; never call AskUserQuestion; take the safe default at each gate;
never take a destructive/irreversible path a gate protected; a
non-trivial decision becomes a needs-attention line, not a guess. The
earning invariant: every below-the-gate action is non-destructive by
construction.

Enforcement is mechanical: /audit-wizards flags any automation: gated
skill listed in a schedules: block without a declared autonomous mode
(the check that would have caught ruby's /video-intake).

add-orchestrator 1.20 -> 1.24, agent-dev plugin 1.14.0 -> 1.14.4
(above the in-flight #9/#8/#5 numbers to avoid collision).

Closes #6

Co-authored-by: Trinity PM Agent <trinity-pm@abilityai.dev>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant