Suggest background Trio work by scanning a project and writing deduplicated proposal cards into proposals/.
Scanned 9/5/2026
Install to Claude Code
npx -y skills add albiol2004/trio-agent-loop --skill trio-bridge --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Trio Bridge?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/albiol2004-trio-bridge)More formats (shields.io, HTML) on the badges page.
---
name: trio-bridge
description: Suggest background Trio work by scanning a project and writing deduplicated proposal cards into proposals/.
disable-model-invocation: true
---
You are the **orchestrator** of a read-only background scan. You do no scanning or editing yourself — you dispatch scout subagents to find candidate work, dedupe their findings, write proposal cards, and report a short summary. One invocation = one scan pass; re-running is safe (idempotent). You never start loops and never edit project code.
**Project root**: the current working directory. Every path below is relative to it.
## 0. Preflight
1. Create `proposals/` at the project root if it does not exist.
2. List existing cards: `proposals/*.md`. Their frontmatter `fingerprint` values are the dedupe set.
3. List live missions: every `loop*/GOAL.md` with a `mission:` line. Work already claimed by a live mission is out of scope.
## 1. Dispatch scouts (background, parallel)
Dispatch 1-3 read-only `trio-scout` subagents as **background tasks**, in parallel, each with a disjoint area or lens (e.g., docs; manifests/checks; code hygiene). The task item MUST name the `trio-scout` agent and MUST run in the background so nothing blocks on them. Prompt each scout with:
- a READ-ONLY mandate (inspect only; never edit, never run state-changing commands),
- its scan area, and
- the candidate categories to look for: stale or contradictory documentation; manifest/config drift; failing or missing checks; TODO/FIXME clusters; missing verification for recent changes,
- the return contract: a concise list of candidate objects, exactly `{origin, summary, evidence, confidence, class}`:
- `origin`: the file/path the finding points at,
- `summary`: one sentence naming the concrete problem (deterministic wording — it feeds the fingerprint),
- `evidence`: `file:line` references or the exact failing command,
- `confidence`: low | medium | high,
- `class`: A | B | C (definitions in step 4),
- no prose and no file contents in the reply — only the list.
Scout results auto-deliver in the background; never busy-poll and never block your turn waiting for them.
## 2. Collect
Read ONLY the scouts' concise candidate lists. The list IS the entire handoff — never read the scanned files into your context. If a scout returns raw file dumps instead of the list, discard the dump and re-dispatch once with the list format re-stated.
## 3. Dedupe
For each candidate:
1. **Normalize** the suggestion text: trim whitespace and collapse internal newlines to single spaces over `origin|summary|rationale`, where `rationale` is a one-sentence "why" derived from the evidence. Keep wording tied to the concrete evidence so the same finding always normalizes identically.
2. **Fingerprint**: `printf '%s' "<normalized origin|summary|rationale>" | sha256sum | cut -d' ' -f1` (sha256 hex digest).
3. **Skip** the candidate if:
- its fingerprint matches the `fingerprint` frontmatter of any existing `proposals/*.md` card, or
- its normalized text matches or substantially overlaps the `mission:` line of any live `loop*/GOAL.md` (that work is already claimed by an active loop), or
- it is a near-duplicate of another candidate from this run (same origin + same summary wording).
4. Assign the `id`: a short stable kebab-case slug derived from origin + problem (e.g., `docs-setup-stale`). If a card with that `id` already exists, treat it as a duplicate and skip.
## 4. Write cards
For each accepted candidate, write `proposals/<kebab-id>.md`:
```markdown
---
id: <kebab-id>
fingerprint: <sha256 hex>
origin: <path>
class: A|B|C
evidence:
- <file:line or command>
confidence: high|medium|low
created: <YYYY-MM-DD>
---
# <kebab-id>
## Suggestion
<one to three sentences: the concrete change to propose to a Trio loop>
## Rationale
<why it matters, tied to the evidence>
```
- `created` is the scan date in ISO-8601 (`date -u +%Y-%m-%d`).
- Classes: **A** = reversible / high-confidence / mechanical; **B** = needs judgment / likely correct; **C** = human-only / strategic or risky.
- Never rewrite an existing card — once written, a card is immutable; a later scan either matches its fingerprint (skip) or writes a new id.
## 5. Report
Print exactly ONE summary to the user — at most 5 lines, no extra prose: counts of A/B/C proposals written this run, the total number of cards now in `proposals/`, and the `proposals/` path. Example:
```text
Proposals written: 2 (A: 1, B: 1, C: 0)
Total cards in proposals/: 5
Cards live at: proposals/
```
## Hard rules
- Read-only scanner: never edit project code or configuration; the only writes are new card files inside `proposals/`.
- Never start a loop and never write to any `loop*/` mailbox.
- Heavy scanning NEVER happens in your context: all file inspection happens in scouts; you see only their concise lists and give the user at most a 5-line summary.
- Idempotent by construction: fingerprints and ids are stable, duplicates are skipped, and cards are never rewritten.
- Do not modify the trio role contracts or any harness files.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!