osdlc
@osdlc Organization
Public Skills
pr-respond
by osdlc
Respond to review feedback on an open task PR with lease coordination. Given a PR number, parses the lease-binding footer from the PR body, cd's into the task's worktree, fences the discovered lease against the footer's lease_id, re-acquires the lease into the responding phase, dispatches a sub-agent to address review comments, pushes the response commits, and transitions the lease back to awaiting-review. Each re-acquisition is a CAS-REPLACE with steal-on-expired semantics: two operators racing the same PR resolve to a single owner.
markdown-format
by osdlc
Format a project's markdown with sdlc markdown fmt (the pinned, Obsidian-safe rumdl behind sdlc's managed rule set) in an isolated worktree, assert the diff only reflows prose, and open a PR carrying the formatting-only change. Invoke to format, reflow, or normalize markdown across a project or under one path, or when sdlc markdown check fails across many files.
pr-check
by osdlc
Classify the state of a single open or closed pull request into one of a fixed verdict enum — CLEAN, BEHIND, NEEDS-RESPONSE, CONFLICTS, CI-FAILED, CI-BLOCKED, MERGED, CLOSED, or ERROR — plus a one-line reason. Non-interactive and read-only on both the repo and GitHub; the only file it writes is a per-PR cursor under .sdlc/pr-cursors/ (gitignored) used to detect new review comments between calls. Designed to be called per open PR from /sdlc:orchestrate; the parent dispatches on the verdict and never has to parse free-form PR state itself. Supports a --mock-state flag that swaps the live gh payload for a JSON fixture so the classifier and cursor-update path can be exercised deterministically under the eval harness.
entities-migrate
by osdlc
Apply mechanical, auto-fixable schema drift to entity instances under docs/planning/<plural>/. Spins up a worktree, runs the audit, applies every fix the audit flagged auto_fixable — stamping the missing schema_version into frontmatter AND running the deterministic body transforms (the v_n->v_n+1 chain that reshapes body sections, e.g. a task's bulleted Files-to-touch/Today blocks into typed v3 tables) — and opens a PR. Body transforms are deterministic TS that reshape what's unambiguous and flag the ambiguous tail (definition_gap + status downshift, mid-flight preserved); no LLM in the migrate path. Skips closed entities by default; pass --include-closed to forward that flag to the audit and treat closed entities like active ones.
discuss
by osdlc
Propose one solution as a parley document that ends in a decision: the problem, the solution as typed blocks, and a question with a recommendation for every trade-off the reviewer must ratify, so the page can be approved or sent back. Domains are notes beside this skill (sql and ui). Then hand it to parley. Use it when the reader must decide.
pr-mermaid-comment
by osdlc
Post or update a GitHub pull request comment (or PR body) that carries Mermaid diagrams, and prove the diagrams render before it goes up. Drafts the Markdown in a scratch file, renders every fenced mermaid block through the same pipeline GitHub's viewer uses (GitHub's Markdown API, then Mermaid in headless Chromium at the default security level), screenshots the result, then posts with gh. Use when asked to add diagrams, an architecture summary, or a flow to a PR, or to check whether a Mermaid block on GitHub will render.
skill-review
by osdlc
Review one skill or every skill in a plugin against the skill-author checks and against each other, and recommend what to tighten, map, merge, split, retire or document. Read-only; with --fix it hands each marked skill to skill-author.
standard-new
by osdlc
Interactively define a new standard — a prescriptive statement about the codebase (architectural rule, design convention, style requirement, or workflow expectation). Walk the user through slug, title, state, applies_to.paths scope, and optional supersession links; create the file via sdlc standard create (which auto-assigns an immutable S<NNNN> id); validate the frontmatter; report the path. Optionally also capture prose for Rule / Why / How to apply and Edit them into the file.
pr-review
by osdlc
Shell out to a headless external agent — codex by default, claude on request — for a code review of the current branch against the upstream default branch: potential errors, cleanup areas, duplication, and opportunities to better use or grow the project's own library set.
markdown-format
by osdlc
Format a project's markdown with sdlc markdown fmt (the pinned, Obsidian-safe rumdl behind sdlc's managed rule set) in an isolated worktree, assert the diff only reflows prose, and open a PR carrying the formatting-only change. Invoke to format, reflow, or normalize markdown across a project or under one path, or when sdlc markdown check fails across many files.
capability-map
by osdlc
Map out the capability graph for one scope of the project: survey the code (or the product's capability-map table), propose new Capability entities where the map has gaps, enrich existing ones with locations, grain, audience and related links, and report retire candidates. Runs sdlc capability coverage and sdlc capability graph read-only, dispatches one read-only sub-agent per candidate, renders one batched plan for approval, then writes through sdlc capability create / sdlc capability update and opens a PR. Invoke when capabilities are missing, ungraded, unanchored, or when the System page's capability view looks empty for an area. Usage: /sdlc:capability-map <dir C-NNNN areas> [--dry-run] [--auto].
task-work
by osdlc
Pick up a task from docs/planning/tasks/, validate it, acquire its lifecycle lease, spin up a worktree, run the implementation-ready gate, acquire the run's phase on the lease once that gate passes, clarify open questions, implement via sub-agent (with a heartbeat thread keeping the lease alive), run local quality checks, write the handoff.md blob, transition the lease to awaiting-review, and open a PR carrying the lease-binding footer. Exits at PR open; /sdlc:pr-respond and /sdlc:task-close-out take over from there.
research
by osdlc
Answer one question with sourced findings inside a time box: state the question, search the repo before the web, record each source with what it settles, and end with findings, open points and a recommendation. Use it whenever a decision or a capability needs facts first.
lib-publish-ready
by osdlc
Audit one library package for a first public release. Produces a readiness report (every quality-bar row with evidence and a verdict: pass, gap, blocker, n/a or owner), the evidence for the name, worthwhile, stable, home and API gates, an inventory of the public API, the first public version, a sanitized CHANGELOG draft, owner questions with a recommendation each, and a fix list whose items are tagged safe or needs-decision. Reads the package; never writes inside it. Use it before publishing a library to a public registry such as crates.io or npm, or to re-audit after fixes.
pr-stats
by osdlc
Summarize a pull request or branch diff beyond GitHub's +/-: lines added and removed by code, comments, blank and prose; a change-category breakdown (added, deleted, renamed, tests, docs, generated, formatting-only, comment-only, logic); dependency and exported-API changes; and the cyclomatic-complexity movers. Use before or after opening a PR, in review, or when asked to "summarize this change", "how big is this PR", "what did this branch actually change", or "add stats to the PR". Optionally writes the table into the PR body. Runs from a bundled script with plain Node, git and gh; needs no other plugin.
discuss
by osdlc
Propose one solution as a parley document that ends in a decision: the problem, the solution as typed blocks, and a question with a recommendation for every trade-off the reviewer must ratify, so the page can be approved or sent back. Domains are notes beside this skill (sql and ui). Then hand it to parley. Use it when the reader must decide.
consolidate-task-prs
by osdlc
Collapse every open single-task-file PR — each carrying one new draft task file under docs/planning/tasks/ — into a single consolidation PR, deduping the folded tasks against the present task list, then close the superseded PRs and delete their branches. Explicit cleanup only, never auto-invoked: run it to fold an accumulation of one-task-each PRs back into one reviewable PR.
consolidate-task-prs
by osdlc
Collapse every open single-task-file PR — each carrying one new draft task file under docs/planning/tasks/ — into a single consolidation PR, deduping the folded tasks against the present task list, then close the superseded PRs and delete their branches. Explicit cleanup only, never auto-invoked: run it to fold an accumulation of one-task-each PRs back into one reviewable PR.
capability-groom
by osdlc
Take a capability from a name to a chosen shape and implementation architecture: define it, research prior art and constraints, propose two or three shapes, select one with stated criteria, and leave a capability entry and a decision ready to record. Use it before any task is split from a capability.
orchestrate
by osdlc
Run one deterministic orchestrate tick by invoking sdlc orchestrate run --once: dispatch ready tasks, classify and act on open PRs, and close out merged ones. Wrap with /loop /sdlc:orchestrate for the hands-off self-driving orchestrator loop.
api-enhancement-scan
by osdlc
Given a library or module name, survey every call site of it across the codebase — fanning out subagents over independent codebase sections — and surface recurring caller-side patterns (repeated boilerplate, copy-pasted wrappers, awkward argument plumbing, repeated post-processing) that a new or enhanced API on the called module would absorb. Returns ranked enhancement opportunities, each backed by real call-site citations. Use when asked to find API improvement or enhancement opportunities for a module, library, or package, to spot missing affordances, or to understand how a module is actually used by its callers. Pass --in to survey only named packages or directories instead of the whole project, and --workflow to have it propose a reusable Workflow script for the survey instead of running it ad hoc.
task-ensure-ready
by osdlc
Verify a single task document against the implementation-ready contract (solutions/ontological/lib/model/entities/task/implementation-ready.md). Writes frontmatter only, leaving body content to /sdlc:task-define. On pass, stamps readiness_verified_at on frontmatter. On fail, clears that stamp, records a definition_gap, and downshifts state to planning/needs-definition — except when the input is already in-progress or in-progress/blocked, in which case state is preserved (the task is mid-flight and a downshift would corrupt task-work state). When the task is autonomy: autonomous/pr and the deterministic verify finds a gap, it dispatches /sdlc:task-auto-define once to best-effort fill the gap, then re-verifies, self-readying the task. Dispatched by /sdlc:task-work Step 5a after the readiness gate, and runnable standalone. Idempotent and safe to re-run.
task-close-out
by osdlc
Close the loop on a task whose PR has merged: flip the task file to state: closed/done on main with a completion_note citing the merged PR, then tear down the task's worktree and its task/<basename> branch (local and origin) through the safe cleanup ops (sdlc project cleanup and apply-cleanup), which leave a receipt. Detects the merged PR automatically from the branch name (override with --pr <N>). Emits a deterministic stdout marker so /sdlc:orchestrate can dispatch on the result.
skill-author
by osdlc
Write or tighten a minimal skill: one process, a scope line, inputs and outputs, numbered steps, and optionally a map, grading checks and a test environment. Short, lists over prose, other skills called by wikilink. Script-free unless a step is deterministic and repeated. Use it for every new skill in craft or sdlc.