agentleFS
synaptiaisynaptiai/bdsk/skills/approve/SKILL.md

approve

Skill0 starsChanged 7 months agoMITView on GitHub

Approve one or more BDSK artifacts in a single command. Handles the YAML surgery of changing status, adding approvals entries, and updating timestamps. Supports single, batch, and cascading approval. Use instead of manually editing artifact YAML files.

We split this skill into the rules it gives an agent

9 rules. 0 are common, 4 are distinctive, and 5 are very specific to this project.

  • 0

    Common

    Most of the 3 edited versions we read keep these.

  • 4

    Distinctive

    This author's own choices. Worth a look.

  • 5

    Very specific

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

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    If more than 1 artifact, ask for confirmation via AskUserQuestion.

    line 56
  2. Very specific:

    All others: draft → approved b.

    line 61
  3. Very specific:

    Update updated_at to current timestamp

    line 79
  4. Very specific:

    Write the execution plan ID to .claude/state/active-executions/<plan-id>.yaml

    line 84
  5. Distinctive:

    Never approve an artifact that has errors (run a basic validation check first)

    line 88
  6. Distinctive:

    If a single artifact is already approved/accepted, print "Already approved: <id>" and exit

    line 90
  7. Distinctive:

    If batch/cascading and some artifacts are already approved, show which ones will be skipped

    line 91
  8. Very specific:

    When approving behavior_specs that have status: draft appearing in examples too, use enough context to only match the envelope status field

    line 93
  9. Very specific:

    Approvals format: MUST be {authority_role: <role>, approver: <user>, approved_at: <ISO-8601>}.

    line 95

“Common” is measured: kept by at least 6 in 10 of the 3 edited versions of this file we could read. “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

/approve

Approve BDSK artifacts in one command.

Input

The user provides artifact IDs, patterns, or flags: $ARGUMENTS

Modes

Single: /approve BS-login-001

Approve one artifact by exact ID.

Batch: /approve --all-draft behaviors

Approve all artifacts of a given kind that are in draft/proposed status. Valid kinds: behaviors, assumptions, plans, gates, policies, contracts.

Cascading: /approve --plan EP-feature-001

Approve an execution plan AND all its upstream dependencies (behavior specs, assumptions) that are still draft/proposed. This is the most common workflow — approve everything needed to start execution.

Override: /approve --as product_authority BS-login-001

Override the inferred authority role.

Process

  1. Resolve targets. Based on the input mode:
    • Single: Glob artifacts/**/*.yaml, find the file containing id: <target>
    • Batch: Glob artifacts/<kind>/*.yaml, filter by status: draft or status: proposed
    • Cascading: Read the plan's trace.upstream, collect all target IDs, resolve each
  2. Preview. Show the user what will be approved:
    Will approve 5 artifacts:
      BS-login-001 (behavior_spec, draft → approved)
      BS-signup-002 (behavior_spec, draft → approved)
      AR-session-001 (assumption_record, proposed → accepted)
      AR-jwt-001 (assumption_record, proposed → accepted)
      EP-feature-001 (execution_plan, draft → approved)
    If more than 1 artifact, ask for confirmation via AskUserQuestion.
  3. Apply. For each artifact: a. Determine the new status:
    • assumption_record: proposed → accepted
    • All others: draft → approved b. Infer the authority role (unless --as overrides):
    • behavior_spec → technical_authority
    • assumption_record (area: product) → product_authority
    • assumption_record (area: architecture) → technical_authority
    • assumption_record (area: security) → security_authority
    • assumption_record (area: compliance) → product_authority
    • assumption_record (area: other) → product_authority
    • execution_plan → technical_authority
    • codegen_policy → technical_authority
    • review_gate → technical_authority
    • contract_artifact → technical_authority c. Edit the file:
    • Change status: draft (or proposed) to the new status
    • Replace approvals: [] with an approvals entry containing:
      • authority_role: inferred or overridden role
      • approver: current user (from owners[0] in the artifact)
      • approved_at: current ISO-8601 timestamp
    • Update updated_at to current timestamp
  4. Report. Print summary of what was approved.
  5. If cascading plan approval, also activate scope enforcement:
    • Write the execution plan ID to .claude/state/active-executions/<plan-id>.yaml

Rules

  • Never approve an artifact that has errors (run a basic validation check first)
  • For cascading approval, always show the full list before proceeding
  • If a single artifact is already approved/accepted, print "Already approved: <id>" and exit
  • If batch/cascading and some artifacts are already approved, show which ones will be skipped
  • The approvals: [] → structured entry replacement must handle both empty array and missing field
  • When approving behavior_specs that have status: draft appearing in examples too, use enough context to only match the envelope status field
  • Canonical authority roles (only use these 5): product_authority, technical_authority, security_authority, release_authority, qa_authority. Never use invented role names like spec_approver, plan_approver, or assumption_approver.
  • Approvals format MUST be {authority_role: <role>, approver: <user>, approved_at: <ISO-8601>}. Not {date, decision} or any other structure.

Download now (ZIP)

  • Other versions3 projects use a version of this.

    Word for word · 0

    None found.

    Edited · 0

    None found.

    Wrote their own version · 3

    1. drobins25/craft★ 70same name
    2. tornikebolokadze1-cyber/agent-foundation-kit★ 4same name
    3. iadr-dev/greenlight★ 1same name

    How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.

  • In this repository11 other files it gives its agents.

Does it work?

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

Reviews can't be read right now.

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.