agentleFS
lulufoolulufoo/lulu-workflow/decision/SKILL.md

decision

Skill3 starsChanged 6 days agoMITView on GitHub

Through one structured decision, settle the work into a user-confirmed, landable shape: the key changes that realize it, how they fit together, and the constraints on them, without execution detail. This file starts, routes, and finishes; Signals fire beside the spine, and each runner owns dialogue. - $SKILL_ROOT, $WORKFLOW_DIR, $PLATFORM, $CACHE_DIR - $DECISION_SKILL_DIR = $SKILL_ROOT/decision - a confirmed $CYCLE_ID </HARD-GATE> Subcommand contracts: module docstrings / --help. Loaded runners inherit these macros; runner-only macros stay local. Spine: O → Q →…

17 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use brief, plan and 3 more.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • AnthropicSkill

    brief

    Generate contextual briefings for legal work — daily summary, topic research, or incident response. Use when starting your day and need a scan of legal-relevant items across email, calendar, and contracts, when researching a specific legal question across internal sources, or when a developing situation (data breach, litigation threat, regulatory inquiry) needs rapid context.

    Also in 3 projects that use this

  • BlockSkill

    plan

    Draft a TDD, PRD, or lightweight plan in the conversation without committing it.

    Also in 4 projects that use this

  • OpenAISkill

    audit

    Audit or critique a product flow, journey, workflow, funnel, onboarding path, checkout path, settings path, screen, or multi-step product experience by capturing screenshots first, then reporting UX, design, and accessibility findings inline from that evidence. Use Figma only when the user explicitly asks for a board. Use when the user asks to audit, review, critique, inspect, assess, analyze, evaluate, or give feedback on a product experience.

    Also in 3 projects that use this

  • SentrySkill

    review

    Fixture review skill.

    Also in 4 projects that use this

  • MicrosoftSkill

    handoff

    Compact the current conversation into a handoff document for another agent to pick up.

    Also in 3 projects that use this

The file

We split this skill into the rules it gives an agent

7 rules. 0 are common, 5 are distinctive, and 2 are very specific to this project.

  • 0

    Common

    Most of the 16 edited versions we read keep these.

  • 5

    Distinctive

    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:

    Do NOT proceed until the holder has provided:

    line 23
  2. Distinctive:

    Do not infer domain constraints from holder SKILL prose or memory.

    line 34
  3. Very specific:

    Run $DEC_START. Holder stages pass their own --constraints.

    line 58
  4. Very specific:

    After $DEC_START or a holder binding returns context_docs: run $GATE_CONTROL resolve-context.

    line 59
  5. Distinctive:

    When both trigger, complete S2 before handling S3.

    line 106
  6. Distinctive:

    G1.: Ask one question at a time.

    line 126
  7. Distinctive:

    Do not exit Decision or transition to the next stage until DC succeeds and the user explicitly confirms readiness.

    line 148

“Common” is measured: kept by at least 6 in 10 of the 16 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

decision-workflow

Through one structured decision, settle the work into a user-confirmed, landable shape: the key changes that realize it, how they fit together, and the constraints on them, without execution detail. This file starts, routes, and finishes; Signals fire beside the spine, and each runner owns dialogue.


Principles

  1. Fully expose risks — surface risks arising from any Prior, Constraint, or Assumption.
  2. Clear unresolved doubts — when doubts remain, offer to resolve them one question at a time.
  3. Respect evidence boundaries — never present an unverified premise as a verified conclusion.
  4. User prior over framework — integrate the user's judgments; never let the framework override them.

Contract

<HARD-GATE> Do NOT proceed until the holder has provided:
  • $SKILL_ROOT, $WORKFLOW_DIR, $PLATFORM, $CACHE_DIR
  • $DECISION_SKILL_DIR = $SKILL_ROOT/decision
  • a confirmed $CYCLE_ID</HARD-GATE>
<HARD-GATE name="Domain Constraints">
  1. Pin $CTX via $GATE_CONTROL resolve-context.
  2. Apply $CTX.domain_constraints (objective, role, domain, x_dimensions, omitted_sections) to the session.
  3. Do not infer domain constraints from holder SKILL prose or memory.
</HARD-GATE>

Script Macros

MacroCommand
$DEC_STARTpython3 "$DECISION_SKILL_DIR/scripts/dec_start.py" --cycle-id "<cycle_id>" --constraints "<constraints_path>" [--conversation-id "<conversation_id>"] [--domain-constraints-file "<path>"] [--session-dir "<session_dir>"]
$DEC_REOPENpython3 "$DECISION_SKILL_DIR/scripts/dec_reopen.py" --cycle-id "<cycle_id>" --constraints "<constraints_path>" [--permit "<permit_path>"]
$GATE_CONTROLpython3 "$DECISION_SKILL_DIR/scripts/dec_gate_control.py" --cycle-id "<cycle_id>" --constraints "<constraints_path>"
$GET_PAYLOAD$GATE_CONTROL get-payload
$REGISTER_CONTROLpython3 "$DECISION_SKILL_DIR/scripts/dec_register_control.py" --cycle-id "<cycle_id>" --constraints "<constraints_path>"
$REGISTER_COMMITpython3 "$DECISION_SKILL_DIR/scripts/dec_register_control.py" --cycle-id "<cycle_id>" --constraints "<constraints_path>" register-commit --operations '<json array>'
$RS_COMMITpython3 "$DECISION_SKILL_DIR/scripts/dec_gate_control.py" --cycle-id "<cycle_id>" --constraints "<constraints_path>" rs-commit --gate "<G>" --operations '<json array>'
$BATCH_RECLOSEpython3 "$DECISION_SKILL_DIR/scripts/dec_gate_control.py" --cycle-id "<cycle_id>" --constraints "<constraints_path>" batch-reclose --payloads '<json object>'

Subcommand contracts: module docstrings / --help. Loaded runners inherit these macros; runner-only macros stay local.


Start

  1. Run $DEC_START. Holder stages pass their own --constraints; generic decision may omit it. When the platform provides a conversation ID, pass --conversation-id.
  2. After $DEC_START or a holder binding returns context_docs: run $GATE_CONTROL resolve-context; pin $CTX; load each returned context document once; declare the bound session and use only the new $CTX.

Router

<HARD-GATE> Load the routed runner before execution; never rely on memory. The runner owns its context and dialogue map. Route only from `$CTX` and macro stdout; never access session artifacts directly. </HARD-GATE>

Spine: O → Q → GL → E → D → X → R → DC → $GATE_CONTROL complete.

Dispatch: GATE_COMPLETE → next spine runner; RS / Batch → returned runner. Signals route P / Scan / RS. Scan incremental open or R handle → Release.

Global

RouteRunner
P$DECISION_SKILL_DIR/runners/p-registers-runner/SKILL.md
RS$DECISION_SKILL_DIR/runners/rs-realign-runner/SKILL.md

Gate

RouteRunner
O$DECISION_SKILL_DIR/runners/o-open-channel-runner/SKILL.md
Q$DECISION_SKILL_DIR/runners/q-problem-runner/SKILL.md
GL$DECISION_SKILL_DIR/runners/gl-grill-runner/SKILL.md
E$DECISION_SKILL_DIR/runners/e-direction-runner/SKILL.md
D$DECISION_SKILL_DIR/runners/d-decision-runner/SKILL.md
X$DECISION_SKILL_DIR/runners/x-full-diagnosis-runner/SKILL.md
R$DECISION_SKILL_DIR/runners/r-expose-bets-runner/SKILL.md
DC$DECISION_SKILL_DIR/runners/dc-delivery-runner/SKILL.md

Tools

RouteRunner
Scan$DECISION_SKILL_DIR/runners/risk-scan-runner/SKILL.md
Release$DECISION_SKILL_DIR/runners/risk-release-runner/SKILL.md
HD$DECISION_SKILL_DIR/runners/hd-human-decision-runner/SKILL.md

Signals

When both trigger, complete S2 before handling S3.

IDContract
S1Any new Register item in dialogue → load P in parallel before replying; resume the current runner on P_COMPLETE.
S2Any new Register write or gate-payload write → use its stdout as Diff; run Scan incremental.
S3Any new Register write, gate-payload write, or user input that conflicts with a closed conclusion → load RS.

Cross-gate

Projection

  1. Speak in task terms; name internal IDs only for implementation or failure.
  2. Preserve $CTX.domain_constraints vocabulary. Precedence: domain.instruction > role.instruction > projection rules.
  3. Projected text is presentation only; never persist it.

Operating rules

G1. Ask one question at a time. Apply the full Ask Protocol only where the active runner binds it.

G2. Advance only when the active runner's map holds.

G3. Bypassing unclosed gates requires explicit user confirmation; confirmed exit ends incomplete.


Freeze and Resume

Frozen is external-revision-only; $RS_COMMIT releases it. In-session RS stays InProgress.

  1. Freeze — For a revision, run $DEC_REOPEN, not $DEC_START. The holder owns any required reopen permit.
  2. Hold — While Frozen, block ordinary gate advancement and complete RS.
  3. Resume — After RS confirmation, run $RS_COMMIT; it returns the session to InProgress and names the gate to resume.

Done

<HARD-GATE name="Decision completion">
  1. Do not exit Decision or transition to the next stage until DC succeeds and the user explicitly confirms readiness.
  2. In a holder, Decision completion closes only the decision node; holder delivery owns the outer transition and delivered references.
</HARD-GATE>

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.