agentsclimarketplace

Brief

Skill ronniepinnell/casper/collection/communication/brief

πŸ‘» The friendly ghost in your git. Your AI said done β€” Casper makes it prove it. Claim-evidence hooks + a verdict ledger for Claude Code.

Install
npx -y skills add ronniepinnell/casper --skill brief

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • 27 days oldThe repository was created 27 days ago. New is not bad, but a brand new repository carrying a familiar-sounding name is the shape a typosquat arrives in, and there has been no time for anyone else to find a problem with it.
  • 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Generate a copy-paste prompt to brief a non-Claude agent (Codex, Gemini, Ollama, Cursor) on an epic or task. Auto-triggers when /epic start detects a model mismatch. Also callable directly.

SKILL.md

9.5 KB, ~2.5k tokens by cl100k_base, as published. Nobody here has run it

MCP Tool Map (Gemini/Codex): See .claude/skills/_shared/mcp-tool-map.md for tool name equivalents. Linear: get_issue/update_issue/create_issue/list_issues/search_issues. Supabase: use python3 {scripts_dir}/infra/run_sql.py "<SQL>" via Bash.

Agent Briefing Generator

When the assigned agent isn't Claude, don't run the epic β€” generate the prompt to hand off.

When This Skill Runs

  1. Auto-invoked by /epic start when it detects the epic's Execution Context specifies a non-Claude agent/model
  2. Manually invoked via /brief {ID} when the Operator wants a ready-to-paste prompt for another agent

Execution

Step 1: Read the Epic

get_issue(id: "{ID}")

Extract from the epic description:

  • Title and Goal (first paragraph of ## Goal)
  • Branch name from ## Git
  • Milestone name
  • Machine / Agent / Model from ## Execution Context
  • Acceptance tests file path
  • Dependencies β€” list their {ID} and status
  • Tasks β€” list all child task identifiers
  • Area β€” infer from labels (dashboard, etl, schema, factory, api, tracker, cv)

Step 2: Read All Child Tasks

For each child task, call:

get_issue(id: "{task_prefix}-{task_id}")

Extract from each task:

  • Title
  • ## Goal (first sentence)
  • ## Steps (full text)
  • ## Required Reading (if present)
  • ## Outcome (verification command or test)

Step 3: Detect Area Rules

Map epic labels to rules/areas/ files:

Label containsRules file
dashboard, ui, brandrules/areas/dashboard.md
etl, pipelinerules/areas/etl.md
schema, databaserules/areas/schema.md
factoryrules/areas/factory.md
apirules/areas/api.md
trackerrules/areas/tracker.md
cv, visionrules/areas/cv.md

If no label matches, default to no area-specific rules file.

Step 4: Generate the Prompt

Output a fenced code block containing the complete prompt. The prompt follows this structure:

## Task: [{MILESTONE}] {Epic Title} ({{ID}})

You are working on {project_name} ({one-line product description}).

### Required Reading (read these files BEFORE writing any code)

1. `.agents/reference/lifecycle_process.md` β€” full lifecycle process (git flow, telemetry, checks)
2. `CLAUDE.md` β€” project rules (CRITICAL, never violate)
3. `rules/BASE.md` β€” core engineering rules
{4. `rules/areas/{area}.md` β€” area-specific rules (if applicable)}
{5. any files from tasks' ## Required Reading sections, deduplicated}

### Epic Details

- **Epic:** {ID} β€” {title}
- **Branch:** `{branch_name}` (branch from `develop`)
- **Milestone:** {milestone}
- **Acceptance tests:** `{test_file_path}`

### Goal

{Full ## Goal text from epic description}

### Outcome (how to verify you're done)

{Full ## Outcome text from epic description}

### Tasks (work in order, one commit per task)

#### Task 1: {task_prefix}-{t1} β€” {title}
**Goal:** {goal}
**Steps:**
{steps from task description}
**Verify:** {outcome/test from task description}
**Commit:** `[{TYPE}] {task_prefix}-{t1}: {description}`

#### Task 2: {task_prefix}-{t2} β€” {title}
...

### Process

Follow `.agents/reference/lifecycle_process.md` exactly:
1. `git checkout develop && git pull && git checkout -b {branch_name}`
2. Work each task, commit after each one passes verification
3. Run acceptance tests: `pytest {test_file} -v`
4. Create PR to develop: `gh pr create --base develop --title "[{MILESTONE}] {Epic Title}"`
5. Do NOT merge β€” wait for Operator approval
6. Post results as a comment on the PR

### Rules (from CLAUDE.md β€” violations are rejected)

- Never use `.iterrows()` on DataFrames β€” use vectorized ops
- Goal filter: `(event_type == 'Shot') & (event_variant == 'Shot_Goal')` β€” never `event_type == 'Goal'`
- No client-side aggregation in React/Node β€” use SQL views
- No files over 2,000 lines
- No hardcoded brand strings β€” import from `@/lib/brand`
- Commit format: `[TYPE] {task_prefix}-{task_id}: {description}`
- Never include "Closes #XX" or "Generated with Claude Code" in PRs

Step 5: Add Agent-Specific Notes

Append a section based on the target agent:

Codex (gpt-4.1):

### Codex Notes
- You have full filesystem access. Read the Required Reading files directly.
- Use `gh` CLI for PR creation (already authenticated).
- **Commit after EACH numbered step β€” not just at task completion.** Run the step's test first, then commit. Max 5 changed files per commit.
- If a step requires a database, start `sandbox-postgres` first: `docker compose up -d sandbox-postgres`

### When Done β€” Report Results
1. Print your full completion summary in chat (tasks completed, PR number, test results)
2. Post a completion reply to this Linear issue:
   ```bash
   python3 {scripts_dir}/infra/linear_comment.py {ID} "## βœ… Completion Report

   **Tasks:** {N}/{N} Done
   **PR:** #{pr_number} β€” {url}
   **Tests:** {pass}/{total} passing

   **Delivered:**
   - {item 1}
   - {item 2}

   **Blockers/Deferred:** {none or list}
   "
  • If script fails (no LINEAR_API_KEY), skip β€” Operator will capture from chat

**Gemini (2.5-pro / 2.5-flash):**

Gemini Notes

  • Read all Required Reading files before starting β€” you need the full context.
  • Use gh CLI for PR creation.
  • Commit after EACH numbered step β€” not just at task completion. Run the step's test first, then commit. Max 5 changed files per commit.
  • If a step requires a database, start sandbox-postgres first: docker compose up -d sandbox-postgres

When Done β€” Report Results

  1. Print your full completion summary in chat (tasks completed, PR number, test results)
  2. Post a completion reply to this Linear issue:
    python3 {scripts_dir}/infra/linear_comment.py {ID} "## βœ… Completion Report
    
    **Tasks:** {N}/{N} Done
    **PR:** #{pr_number} β€” {url}
    **Tests:** {pass}/{total} passing
    
    **Delivered:**
    - {item 1}
    - {item 2}
    
    **Blockers/Deferred:** {none or list}
    "
    
    • Or use Linear MCP add_comment if available
    • If no access, skip β€” Operator will capture from chat

**Ollama (qwen3:32b / codestral:22b):**

Ollama Notes

  • You run on mothership only. All file paths are local.
  • Keep context focused β€” process one task at a time.
  • Commit after EACH numbered step β€” not just at task completion. Run the step's test first, then commit. Max 5 changed files per commit.
  • Use gh CLI for PR creation.

When Done β€” Report Results

Print your full completion summary in chat:

  • Tasks completed (list each {ID})
  • PR number and link
  • Test results (pass/fail count)
  • Any blockers or deferred items

(No Linear access β€” Operator will capture your output and post to Linear)


**Cursor:**

Cursor Notes

  • You run on mothership in the IDE. All file paths are local.
  • Use terminal for git and gh commands.

When Done β€” Report Results

Print your full completion summary in chat:

  • Tasks completed (list each {ID})
  • PR number and link
  • Test results (pass/fail count)
  • Any blockers or deferred items

(No Linear access β€” Operator will capture your output and post to Linear)


### Step 6: Save Brief to Feature Branch

Write the brief to a file on the epic's feature branch:

```bash
# Ensure we're on the feature branch (created by /epic start Step 2)
git branch --show-current  # must NOT be develop/main

# Write brief file
Write("{scripts_dir}/factory/briefs/{ID}-{agent}.md", content: {full_prompt})

# Commit and push
git add {scripts_dir}/factory/briefs/{ID}-{agent}.md
git commit -m "[DOCS] {ID}: Add {agent} brief for handoff"
git push origin {branch_name}

Step 7: Post Brief as Linear Comment

Post the brief as a comment on the epic issue so it's discoverable and creates a paper trail:

add_comment(
  issueId: "{ID}",
  body: """
## πŸ€– Agent Brief: {agent} ({model})

**Branch:** `{branch_name}`
**Machine:** {machine}
**Tasks:** {N}

---

{full_prompt_content}

---

_Brief generated by Claude Β· Awaiting {agent} execution_
_When done, {agent} should reply to this comment with completion report_
"""
)

Step 8: Print Summary

After posting to Linear, print in chat:

Brief generated for {agent} ({model}) on {machine}.
{N} tasks | Branch: {branch_name}

βœ… Saved to: {scripts_dir}/factory/briefs/{ID}-{agent}.md
βœ… Posted to Linear: {ID} comment thread

Next steps:
1. Copy the prompt above OR find it in Linear issue {ID}
2. Paste into {agent} and run
3. {agent} will post completion report as a reply (if capable)
4. Come back here and run: /epic close {ID}

Key Rules

  • The prompt must be SELF-CONTAINED β€” the agent should need nothing beyond the prompt + the files it references in the repo
  • Always reference lifecycle_process.md β€” don't duplicate its contents in the prompt
  • Always include the critical CLAUDE.md rules inline (the agent may not read CLAUDE.md thoroughly)
  • Deduplicate Required Reading across tasks β€” list each file once
  • Task steps are copied verbatim from Linear β€” don't summarize or rephrase

Judgment weave (see /judgment)

  • When briefed work comes back: run /refute on the external agent's "done" claim before accepting it into the epic.

Gives 0 of the 12 instructions most context ai engineering skills give in ~2.5k tokens

Counted across 1,193 of the 1,976 authors here whose files we hold, read 2026-08-06

  • dispatch a fresh implementer subagent per taskin 48 of 1193, across 19 files
  • dispatch final reviewer after all tasksin 37 of 1193, across 11 files
  • provide full task text to the subagentin 31 of 1193, across 10 files
  • review spec compliance before code qualityin 27 of 1193, across 10 files
  • make the hook script executablein 26 of 1193, across 8 files
  • re-snapshot after navigation or DOM changesin 25 of 1193, across 17 files
  • answer subagent questions before proceedingin 22 of 1193, across 7 files
  • mark task complete in TodoWrite after approvalin 22 of 1193, across 6 files
  • merge hook into existing settingsin 21 of 1193, across 3 files
  • read files before editing themin 21 of 1193, across 9 files
  • ask if installation is global or projectin 20 of 1193, across 2 files
  • copy the hook script to target locationin 20 of 1193, across 2 files

Said here and by no other author read

  • deduplicate required reading across tasks
  • infer epic area from labels
  • read the epic issue
  • read all child tasks
  • output prompt in fenced code block
  • append agent-specific notes to prompt

Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.