
Deferred Capture
Define and audit a consistent deferred-item capture CLI and GitHub issue format across Claude night-market plugins.
Overview
Deferred-capture is an agent skill most often used in Build (also Ship review) that defines the CLI and GitHub issue contract every night-market plugin deferred-capture wrapper must implement.
Install
npx skills add https://github.com/athola/claude-night-market --skill deferred-captureWhat is this skill?
- Required CLI: --title, --source (7 canonical origins), and --context with optional labels, session-id, artifact-path, ca
- Issue title format `[Deferred] <title>` with `deferred` label plus source-specific labels
- Source enum: war-room, brainstorm, scope-guard, feature-review, review, regression, egregore
- Capture modes explicit (default) vs safety-net for audit trails
- Specification-only—runtime capture stays in each plugin’s deferred_capture.py script
- 7 canonical --source values: war-room, brainstorm, scope-guard, feature-review, review, regression, egregore
- 3 required CLI arguments: --title, --source, --context
- 5 optional CLI arguments plus --dry-run flag
Adoption & trust: 1 installs on skills.sh; 304 GitHub stars; 2/3 security scanners passed (skills.sh audits); trending (+100% hot-view momentum).
What problem does it solve?
Plugin deferred-capture wrappers diverge on flags, labels, and issue titles, so deferred follow-ups become inconsistent or hard to trace back to sessions.
Who is it for?
Maintainers of claude-night-market plugins who are implementing, extending, or auditing deferred_capture.py-style wrappers and source labels.
Skip if: Live session capture (invoke the plugin’s deferred_capture.py directly) or one-off manual GitHub issues without a wrapper—those paths skip this contract spec.
When should I use this skill?
Building or validating a plugin's deferred-capture wrapper, or adding source labels and template fields to the night-market contract.
What do I get? / Deliverables
Wrappers and validations align on one CLI surface, canonical source labels, and `[Deferred]` issue titles so deferred work is traceable and ready for GitHub without re-reading ad-hoc plugin docs.
- Contract-aligned deferred-capture CLI behavior (required and optional flags documented)
- Standardized `[Deferred]` GitHub issue titles and label sets per source
- Validation notes comparing an existing wrapper to the specification
Recommended Skills
Journey fit
Spans multiple journey phases - primary shelf plus alternate fits below.
The skill is a build-time specification for plugin authors implementing deferred_capture wrappers, not a runtime capture tool. Agent-tooling is where cross-plugin contracts, wrapper scripts, and source-label conventions live in the solo-builder agent stack.
Where it fits
Implement a new plugin’s deferred_capture.py so --source and --context match the shared contract before merging.
Audit an existing wrapper’s CLI flags and issue titles against the spec before a plugin release.
Extend the contract with a new origin label while keeping `[Deferred]` titles and default deferred labeling consistent.
How it compares
A meta contract for plugin uniformity, not an MCP server integration and not a substitute for each plugin’s runtime capture script.
Common Questions / FAQ
Who is deferred-capture for?
Plugin authors and reviewers in the Claude night-market stack who need one shared deferred-capture CLI and issue template across skills like war-room, brainstorm, and scope-guard.
When should I use deferred-capture?
Use it while building a new deferred-capture wrapper in Build/agent-tooling, when validating an existing wrapper before Ship/review, or when adding a new --source label or template field to the shared contract.
Is deferred-capture safe to install?
It is documentation and conventions only; review the Security Audits panel on this Prism page and treat any wrapper script that creates GitHub issues as code you should audit before granting network or secrets access.
SKILL.md
READMESKILL.md - Deferred Capture
# Deferred Capture Contract ## When To Use - Building a new plugin deferred-capture wrapper - Validating an existing wrapper against the contract - Adding new source labels or template fields ## When NOT To Use - Capturing a deferred item at runtime (use the plugin wrapper directly, e.g. `scripts/deferred_capture.py`) - Creating GitHub issues manually Specification that all plugin deferred-capture wrappers implement. Not a runtime dependency, just a convention. ## CLI Interface Required arguments: - `--title` (str): Concise description. Becomes issue title after `[Deferred]` prefix - `--source` (str): Origin skill. One of: war-room, brainstorm, scope-guard, feature-review, review, regression, egregore - `--context` (str): Why raised and why deferred Optional arguments: - `--labels` (str): Comma-separated additional labels beyond `deferred` and source - `--session-id` (str): Session ID. Canonical source: `$CLAUDE_SESSION_ID` env var, fallback: UTC timestamp `YYYYMMDD-HHMMSS` - `--artifact-path` (str): Absolute path or `$HOME`-based path to source artifact - `--captured-by` (str): `explicit` (default) or `safety-net` - `--dry-run` (flag): Print JSON output without creating issue ## Issue Template Title: `[Deferred] <title>` Labels: `deferred` and `<source>` Body: ## Deferred Item **Source:** <source> (session <session-id>) **Captured:** <YYYY-MM-DD> **Branch:** <current git branch> **Captured by:** <explicit|safety-net> ### Context <context argument verbatim> ### Original Artifact <artifact-path if provided, otherwise "N/A"> ### Next Steps - [ ] Evaluate feasibility in a future cycle - [ ] Link to related work if applicable ## Label Taxonomy | Label | Color | Purpose | |-------|-------|---------| | `deferred` | `#7B61FF` | Universal query handle | | `war-room` | `#B60205` | Source: war-room deliberation | | `brainstorm` | `#1D76DB` | Source: brainstorming session | | `scope-guard` | `#FBCA04` | Source: scope-guard deferral | | `feature-review` | `#F9A825` | Source: feature-review | | `review` | `#0E8A16` | Source: code/PR review | | `regression` | `#D73A4A` | Source: skill regression | | `egregore` | `#5319E7` | Source: autonomous agent | ## Duplicate Detection Search: `gh issue list --search "<title> in:title" --state open --json number,title` Compare: exact title match after stripping `[Deferred]` prefix and normalizing to lowercase. Only open issues are checked. Re-filing a closed deferred item is intentional. ## Output (JSON to stdout) Created: `{"status": "created", "issue_url": "...", "number": 42}` Duplicate: `{"status": "duplicate", "existing_url": "...", "number": 17}` Error: `{"status": "error", "message": "..."}` ## Compliance Test Any wrapper can verify conformance with: python3 scripts/deferred_capture.py \ --title "Test: compliance check" \ --source test \ --context "Automated compliance verification" \ --dry-run Must output valid JSON with a `status` field.