Source profileQuality 94/100

boshu2/agentops/skills/cass/SKILL.md

cass

Mine past agent sessions for working prompts, decisions, and patterns (session archaeology). Triggers: "cass", "mine past agent sessions for", "cass skill".

Source repository stars
416
Declared platforms
0
Static risk flags
0
Last source update
2026-08-05
Source checked
2026-08-05

Decision brief

What it does—and where it fits

Core Insight: Your repeated prompts are your best prompts. If you typed it 10+ times, it works. Mine your history.

Best for

  • "What did I ask last time?" / "find that prompt that worked" — session archaeology
  • Prior-art check before inventing a new approach, plan, or prompt
  • Scope archaeology: "when did we decide NOT to do X?"

Not for

  • Long-form versions with mined evidence: ANTIPATTERNS.md.

Compatibility matrix

Platform support, with evidence labels

PlatformStatusEvidenceWhat to check
CodexNot declaredNo explicit evidencePortability before use
Claude CodeNot declaredNo explicit evidencePortability before use
CursorNot declaredNo explicit evidencePortability before use
Gemini CLINot declaredNo explicit evidencePortability before use
Open the compatibility checker

Installation

Inspect first. Install second.

The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.

Source-detected install commandSource
npx skills add https://github.com/boshu2/agentops --skill "skills/cass"
Safe inspection promptEditorial

Inspect the Agent Skill "cass" from https://github.com/boshu2/agentops/blob/c0f78fddd95ab30f8adadc5e513e27064980a529/skills/cass/SKILL.md at commit c0f78fddd95ab30f8adadc5e513e27064980a529. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.

Workflow

What the source asks the agent to do

  1. 01

    THE EXACT PROMPT — Discovery Workflow

    Why it works: aggregations first (know the terrain), --fields minimal (5x smaller output), linenumber 10 matches for a prompt = a ritual; document and reuse it.

    Why it works: aggregations first (know the terrain), --fields minimal (5x smaller output), linenumber 10 matches for a prompt = a ritual; document and reuse it.
  2. 02

    Constraints

    Never run bare cass because it launches a blocking TUI; use a JSON, robot, or explicit file-output command.

    Never run bare cass because it launches a blocking TUI; use a JSON, robot, or explicit file-output command.Treat a stale index as searchable and refresh it with a bounded background command because stale is not broken and an unbounded rebuild can stall the lane.Preserve source sessions and require explicit permission for destructive cleanup; recovery may rebuild only derived index state.
  3. 03

    When to Use

    "What did I ask last time?" / "find that prompt that worked" — session archaeology

    "What did I ask last time?" / "find that prompt that worked" — session archaeologyPrior-art check before inventing a new approach, plan, or promptScope archaeology: "when did we decide NOT to do X?"
  4. 04

    Folded triggers (ag-s43tg wave 1): casr + cass-memory route here

    casr → cross-harness resume. Cross Agent Session Resumer: convert and resume sessions across Claude Code, Codex, Gemini, and other providers — cass resume plus RESUME.md own this lane (resolve subagent logs to their par…

    casr → cross-harness resume. Cross Agent Session Resumer: convert and resume sessions across Claude Code, Codex, Gemini, and other providers — cass resume plus RESUME.md own this lane (resolve subagent logs to their par…cass-memory → cm procedural memory. Use when starting non-trivial work, mining lessons, or preventing repeated mistakes with cm procedural memory — mine past sessions here first, then promote the durable lessons through…- casr → cross-harness resume. Cross Agent Session Resumer: convert and resume sessions across Claude Code, Codex, Gemini, and other providers — cass resume plus RESUME.md own this lane (resolve subagent logs to their p…
  5. 05

    The Goldmine Principle

    Your conversation history contains: - Refined prompts — Every rephrase that worked better was captured - Working rituals — Prompts repeated 10+ times ARE your methodology - Scope decisions — "When did we decide NOT to do X?" - Recovery moments — What you searched for after conte…

    Refined prompts — Every rephrase that worked better was capturedWorking rituals — Prompts repeated 10+ times ARE your methodologyScope decisions — "When did we decide NOT to do X?"

Permission review

Static risk signals and limitations

No configured static risk pattern was detected

This is not proof of safety. Runtime behavior, indirect dependencies, and hidden external systems are outside the static scan.

Evidence record

Why each signal appears

EvidenceSourceComputedTestedEditorial
SignalValueEvidence typeMeaning
Quality score94/100ComputedDocumentation, specificity, maintenance, and trust rules
Repository stars416SourceRepository attention, not individual Skill quality
Compatibility0 platformsSourceDeclared in the catalog source record
Usage guideautomated source guideEditorialGenerated or reviewed according to the visible evidence level

Pinned source

Provenance and original SKILL.md

Repository
boshu2/agentops
Skill path
skills/cass/SKILL.md
Commit
c0f78fddd95ab30f8adadc5e513e27064980a529
License
Apache-2.0
Collected
2026-08-05
Default branch
main
View the original SKILL.md

cass Session Search

Core Insight: Your repeated prompts are your best prompts. If you typed it 10+ times, it works. Mine your history.

cass is an upstream (Dicklesworthstone) tool and is self-describing — do not re-learn its surface from this skill. Discover it live:

cass capabilities --json      # features/connectors/limits of the installed binary
cass introspect --json        # full schema of every command + response
cass robot-docs guide|commands|examples|schemas|contracts   # machine-targeted docs

This skill carries only the AgentOps operating doctrine: when to reach for cass, the discovery workflow, the recovery posture, and the anti-patterns we have actually hit.

Constraints

  • Never run bare cass because it launches a blocking TUI; use a JSON, robot, or explicit file-output command.
  • Treat a stale index as searchable and refresh it with a bounded background command because stale is not broken and an unbounded rebuild can stall the lane.
  • Preserve source sessions and require explicit permission for destructive cleanup; recovery may rebuild only derived index state.

When to Use

  • "What did I ask last time?" / "find that prompt that worked" — session archaeology
  • Prior-art check before inventing a new approach, plan, or prompt
  • Scope archaeology: "when did we decide NOT to do X?"
  • Post-context-loss recovery: what was searched for after a crash = what mattered

Folded triggers (ag-s43tg wave 1): casr + cass-memory route here

  • casr → cross-harness resume. Cross Agent Session Resumer: convert and resume sessions across Claude Code, Codex, Gemini, and other providers — cass resume plus RESUME.md own this lane (resolve subagent logs to their parent via cass context first; subagent files are not resumable).
  • cass-memorycm procedural memory. Use when starting non-trivial work, mining lessons, or preventing repeated mistakes with cm procedural memory — mine past sessions here first, then promote the durable lessons through cm instead of re-deriving them each session.

The Goldmine Principle

Your conversation history contains:

  • Refined prompts — Every rephrase that worked better was captured
  • Working rituals — Prompts repeated 10+ times ARE your methodology
  • Scope decisions — "When did we decide NOT to do X?"
  • Recovery moments — What you searched for after context loss = what mattered

The insight: Mining your past beats inventing new approaches. In the AgentOps loop the goal is prior-art first: mine as a research-phase move before writing a fresh plan or prompt, and feed what you find back into the corpus instead of re-deriving it.

History-First Routing

Before deriving a plan, prompt, or approach from scratch, run one bounded search of past sessions (one query family, --fields minimal, a real --limit, under a minute of wall clock). Three outcomes, each with its own routing:

  • Direct hit — a prior session solved this. Reuse its prompt or decision; cite source_path and line in whatever you build on it.
  • Adjacent hit — prior work borders the problem. Extract the working fragments, then derive only the missing part fresh.
  • Verified absence — zero hits after retrying against discovered workspace keys (--aggregate workspace). Now derivation is justified, and the absence itself is worth noting: you are in new territory, so budget accordingly.

The named failure mode is re-derivation drift: solving the same problem slightly differently each session, so the corpus accumulates near-duplicate approaches and no single one ever hardens into a ritual. Stop condition for the history pass itself: one query family exhausted or a direct hit found — history search is a bounded pre-step, not an open-ended excavation that displaces the actual task.

Lesson Weighting: Decay and Failure Overweight

Mined lessons are evidence with a shelf life, not doctrine:

  • Confidence decays with corpus drift. Weight a mined lesson by what has changed since it was captured, not by calendar age alone. A lesson about a tool surface or repository that has since moved is a hypothesis to re-verify — one probe against the current surface — before it steers a fresh plan. A lesson about durable method (how to decompose, how to verify) decays far more slowly. Never carry a stale-surface lesson forward at its original confidence; the named failure mode is fossil doctrine — a dead workaround reapplied for months because it once worked and nobody re-checked.
  • Overweight failures. A session where an approach failed is worth more than a session where one worked: successes are overrepresented in what gets polished and remembered, while failures encode the boundary of validity. When mining prior art for an approach, explicitly search for its failures ("didn't work", "reverted", "gave up", error strings) before adopting it. A hit showing the approach failing in circumstances like yours outranks three hits showing it succeeding elsewhere.

THE EXACT PROMPT — Discovery Workflow

1. Bootstrap: Check health, refresh index, get project overview
   cass status --json && cass index --json
   cass search "*" --workspace /data/projects/PROJECT --aggregate agent,date --limit 1 --json

2. Find prompts: Search for keywords, filter to user prompts (lines 1-3)
   cass search "KEYWORD" --workspace /data/projects/PROJECT --json --fields minimal --limit 50 \
     | jq '[.hits[] | select(.line_number <= 3)]'

3. Follow hits: View the actual content
   cass view /path/from/source_path.jsonl -n LINE -C 20

4. Expand context: See the full conversation flow
   cass expand /path/from/source_path.jsonl --line LINE --context 3

5. Discover related: Find the whole work cluster
   cass context /path/from/source_path.jsonl --json

Why it works: aggregations first (know the terrain), --fields minimal (5x smaller output), line_number <= 3 (user prompts live at the top), context clustering (one good hit → many related sessions). >10 matches for a prompt = a ritual; document and reuse it.

Operating Doctrine: Stale ≠ Broken

Three index states matter — never conflate them:

StateMeaningDo
cass health exit 0HealthySearch immediately
stale (index.stale=true)Usable but oldSearch NOW; refresh in background with a wall-clock cap: ( timeout 600 cass index --json &>/tmp/cass-bg.log </dev/null & ) — NEVER a bare &, cass index can hang
broken (database.exists=false or documents=0)Truly uninitializedcass doctor --fix --json, then cass index --full --json

The trap: treating stale as broken triggers an unneeded 8–25s full rebuild when a 1–3s incremental (or a stale-but-correct query) would do. scripts/recover.sh implements the full decision tree with timeouts. Detailed symptom→fix tables (issue #196 hang, stale locks, database is busy race, etc.): RECOVERY.md, OBSERVABILITY.md, PITFALLS.md.

Incremental refresh can become authoritative

An invocation requested as cass index --json may discover that incremental state cannot be reconciled and expand into an authoritative rebuild over the full conversation corpus. A large total or a longer run is evidence of recovery mode, not evidence that source sessions were lost. Do not start a second indexer or report a zero-result search while the first call is still converging.

Concurrent status and search reads can exceed their normal latency during that rebuild. Bound observations with a wall-clock timeout, retain the exit status, and distinguish timeout from an empty result:

status_rc=0
timeout 15 cass status --json > /tmp/cass-status.json || status_rc=$?
# Exit 124 means status was not observed within the cap.

search_rc=0
timeout 30 cass search "QUERY" --json --fields minimal --limit 20 \
  > /tmp/cass-search.json || search_rc=$?
# Exit 124 is NOT zero hits; retry after the rebuild settles.

If status returns, inspect .rebuild.active, .rebuild.phase, .rebuild.processed_conversations, .rebuild.total_conversations, and .rebuild.updated_at. When updated_at or processed count advances, wait for that bounded run rather than stacking recovery. If a bounded read times out, report only that the read was not observed within the cap and keep the last known freshness; do not infer corruption or data loss. See OBSERVABILITY.md.

Version Pinning

cass evolves quickly; the released binary may lack HEAD features. When a flag returns "unrecognized", do not guess — probe: cass capabilities --json and cass introspect --json | jq '.commands[].name', and check cass --version.

Anti-Patterns (Don't Do These)

Anti-patternWhy it's wrongDo instead
Asking the user "should I rebuild the index?"They have agents waiting; rebuild is safe and idempotentJust run cass doctor --fix --json (preserves source data)
Running cass index --full whenever status says unhealthyA 25s rebuild for a 30-min stale index is wastefulCheck index.stale separately from database.exists; prefer incremental
Running bare cass to "see what's there"Launches blocking TUI in the agent's sessionAlways --json or --robot; never bare
Piping cass export into head/jqBroken-pipe panic on large sessionscass export ... -o /tmp/x.json first, then operate on the file
Treating subagent files as parent sessionsSubagents are separate logs with their own line-2 prompt; also NOT resumableFilter by select(.source_path | contains("subagent")); resolve to parent via cass context before cass resume
Using --limit 0 for "no limit"Earlier cass panicsUse a real limit (--limit 50); --limit 1 minimum for aggregations
Trusting 0 hits with --workspace /XWorkspace strings are case- and trailing-slash-sensitiveRe-run with --aggregate workspace --limit 1 to discover the canonical key
Skipping --fields minimal on wide scans~3KB per hit × 100 hits = 300KB context burn--fields minimal for wide passes; upgrade to summary/full for keepers
Reading session files with catLoads the full conversation into contextcass view PATH -n LINE -C 5 or cass expand PATH --line LINE --context 3
Re-indexing on every searchIndex is shared across processesRefresh only when status says stale
Treating a timed-out search during rebuild as 0 hitsConcurrent reads may exceed normal latency while an authoritative rebuild holds shared resourcesPreserve exit 124 as "not observed" and retry once the active rebuild settles
Falling back to manual find/grep when cass misbehavesRecovery is autonomous; skipping cass loses the corpusWalk the recovery tree in RECOVERY.md. One real exception: terms inside tool stdout/stderr are skipped at index time — there rg -n "TERM" /path.jsonl is correct

Long-form versions with mined evidence: ANTI_PATTERNS.md.

Safety Boundaries

Pre-authorized (rebuilds derived index data only, never destroys source sessions): cass doctor --fix --json, cass index --full --force-rebuild --json, cass sources doctor/sync, cass models install/verify.

Do NOT without explicit permission: delete core.NNNNN coredumps, delete .beads/, git reset --hard, or hand-edit ~/.config/cass/sources.toml — the CLI commands above already do everything safely. Never run bare cass (blocking TUI) inside an agent loop.

Reference Index

NeedReference
Full command referenceCOMMANDS.md
Workflow recipesRECIPES.md
jq patternsPATTERNS.md
Pitfalls & fixesPITFALLS.md
Session file formatsSESSION_FORMATS.md
Remote sources, multi-machine searchREMOTE_SOURCES.md
Semantic / hybrid / modelsSEMANTIC_AND_HYBRID.md
Token / tool / model analyticsANALYTICS.md
Cross-harness session resumeRESUME.md
Doctor + autonomous recoveryRECOVERY.md
Mined gold-standard promptsPROMPTS.md
Anti-patterns (long form)ANTI_PATTERNS.md
Health vs status vs index nuanceOBSERVABILITY.md
Pages encrypted archive + HTML exportPAGES_AND_EXPORT.md
Harness exclusion (disabled_agents)HARNESS_EXCLUSION.md
Schema introspection contractsINTROSPECTION.md

When the right reference isn't obvious from titles, grep -ni "SYMPTOM" references/*.md — cheaper than loading whole files into context.

Scripts

Scripts live under scripts/. They execute, never load — zero context tokens. Consistent with the Safety Boundaries above, recover.sh and quick_analysis.sh may rebuild derived index state autonomously (pre-authorized: doctor --fix, index --full) and multi_machine_search.sh reads remote sources over ssh; none destroy source sessions, and nothing destructive (coredump/.beads deletion, git reset --hard, source edits) runs without explicit confirmation.

ScriptUsage
./scripts/quick_analysis.sh /pathOne-command project overview (status → aggregate agent/date → top prompts)
./scripts/prompt_miner.py --workspace /pathFind repeated prompts (ritual detection)
./scripts/validate.shValidate cass install + skill structure
./scripts/recover.shAutonomous recovery decision tree (READY → STALE_BUT_USABLE → BROKEN); wraps every cass index in timeout
./scripts/multi_machine_search.sh "QUERY" [host…]Parallel fan-out across the fleet; merges + dedups hits

Validation

# Quick health check
cass status --json | jq '.index.fresh'

# Should return: true

If false, run: cass index --json

Output Specification

  • Path: stdout for search, status, capability, and introspection results; this skill creates no artifact directory by default.
  • Filename: none unless the caller explicitly requests an export path such as /tmp/cass-export.json with -o.
  • Format: use the installed command's JSON schema from cass introspect --json; wide searches should keep --fields minimal and downstream narrowing must preserve source_path and line location.
  • Exit code: validate with cass status --json | jq -e . and parse every selected result with jq; a nonzero command, malformed JSON, or unresolved source path blocks the handoff.
  • Downstream handoff: consumed by research, planning, recovery, or postmortem work with the exact query, canonical workspace, selected source paths/lines, and index freshness noted.

Quality Checklist

  • Results come from a canonical workspace key and include enough source location to reopen the session context.
  • A zero-hit result was retried against discovered workspace keys before concluding that no prior art exists.
  • Index recovery stayed bounded and preserved source sessions; no stale state was misreported as broken.

Alternatives

Compare before choosing

Computed 10023,835

alirezarezvani/claude-skills

app-store-optimization

App Store Optimization (ASO) toolkit for researching keywords, analyzing competitor rankings, generating metadata suggestions, and improving app visibility on Apple App Store and Google Play Store. Use when the user asks about ASO, app store rankings, app metadata, app titles and descriptions, app store listings, app visibility, or mobile app marketing on iOS or Android. Supports keyword research and scoring, competitor keyword analysis, metadata optimization, A/B test planning, launch checklist

Computed 10014,533

prowler-cloud/prowler

postgresql-indexing

PostgreSQL indexing best practices for Prowler: index design, partial indexes, partitioned table indexing, EXPLAIN ANALYZE validation, concurrent operations, monitoring, and maintenance. Trigger: When creating or modifying PostgreSQL indexes, analyzing query performance with EXPLAIN, debugging slow queries, reviewing index usage statistics, reindexing, dropping indexes, or working with partitioned table indexes. Also trigger when discussing index strategies, partial indexes, or index maintenance

Computed 10014,251

wanshuiyin/Auto-claude-code-research-in-sleep

citation-audit

Use it for operations and research tasks; the detail page covers purpose, installation, and practical steps.

Computed 1004,944

dotnet/skills

migrate-vstest-to-mtp

Migrates .NET test projects from VSTest to Microsoft.Testing.Platform (MTP). Use when user asks to "migrate to MTP", "switch from VSTest", "enable Microsoft.Testing.Platform", "use MTP runner", set OutputType=Exe only for test projects in Directory.Build.props, or mentions EnableMSTestRunner, EnableNUnitRunner, or UseMicrosoftTestingPlatformRunner. USE FOR: MTP behavioral differences vs VSTest (exit code 8, zero tests discovered, --ignore-exit-code, TESTINGPLATFORM_EXITCODE_IGNORE); centralizing