agentleFS
seqraseqra/opentaint/skills/orchestrate-stage/SKILL.md

orchestrate-stage

Skill172 starsChanged 2 months agoApache-2.0View on GitHub

Run one stage of the OpenTaint pipeline by coordinating leaf subagents and deterministic joins. Use when a separate OpenTaint pipeline stage needs to be executed

The file

We split this skill into the rules it gives an agent

6 rules. About 0 are common, 4 are distinctive, and 2 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈4

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 2

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Run the bundled script to get the setup overview before proceeding to the reference's instructions:

    line 27
  2. Very specific:

    Use uv run <skill-dir>/scripts/get_status.py at a stage gate or join, or when an updated list of remaining work is needed.

    line 33
  3. Distinctive:

    don't read a leaf skill's contents unless genuinely needed

    line 52
  4. Distinctive:

    never bundle multiple steps into one dispatch

    line 53
  5. Very specific:

    when a rule or model does not converge after its leaf's retries, load <skill-dir>/references/escalation.md, settle that item, and continue.

    line 54
  6. Distinctive:

    don't author or edit tracking state owned by a script or leaf.

    line 64

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Run one stage

Complete one bounded stage of the OpenTaint security workflow. Dispatch its independent work to leaf subagents within the resource caps and run the deterministic plan/join scripts its reference names. All durable state lives under the project's .opentaint/ tree.

Workflow

Match the stage keyword to its reference and read it fully:

sources      → <skill-dir>/references/sources.md
model-round → <skill-dir>/references/model-round.md
sinks        → <skill-dir>/references/sinks.md
triage       → <skill-dir>/references/triage.md
poc          → <skill-dir>/references/poc.md
escalation   → <skill-dir>/references/escalation.md

Run the bundled script to get the setup overview before proceeding to the reference's instructions:

uv run <skill-dir>/scripts/get_status.py --full

Use uv run <skill-dir>/scripts/get_status.py at a stage gate or join, or when an updated list of remaining work is needed. It is the read-only view of the current stage.

Finish with one concise summary: counts completed and terminal items with one-line causes. Never paste file contents.

Dispatching

Launch leaf subagents from the project root. They inherit that working directory, so omit project-root. One dispatch loads exactly one leaf skill and performs only that skill's task. Follow this template when dispatching subagent:

Invoke the Skill <skill-name> first, then follow its instructions precisely
Inputs:
  <id-or-flag>: <value>

Pass language from get_status.py --full to every language-coupled leaf.

Universal rules:

  • trust the returned summary; open an artifact only when the summary does not resolve the result
  • don't read a leaf skill's contents unless genuinely needed
  • never bundle multiple steps into one dispatch
  • when a rule or model does not converge after its leaf's retries, load <skill-dir>/references/escalation.md, settle that item, and continue. Only a blocker shared by every remaining item stops the stage

Fan-out and caps:

  • get_status.py --full prints global and heavy caps; the heavy leaves in these stages are create-rule and create-dataflow-model. Never exceed either cap; reduce global by 1 for the rest of the stage when a leaf is rate-limited
  • fan out independent units and dispatch the next queued unit as each slot frees
  • block on native agent completion. Never use Monitor, a background command, or resume-polling to wait inside this agent

Key constraints

  • don't author or edit tracking state owned by a script or leaf; write directly only where the selected reference explicitly assigns it
  • read pipeline state through get_status.py, not by hand — don't re-derive it with glob/grep/python3 -c/YAML scans over .opentaint/tracking, results, or the *.yaml. If its output doesn't settle the question, re-run get_status.py --full before opening any file; hand-scanning the tree balloons the run's context

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.