Best for
- Analyzing session patterns to identify protocol recommendation evidence
- Generating a Growth Map (integrating insights + session analysis)
- Re-evaluating protocol adoption based on updated session data
jongwony/epistemic-protocols/epistemic-cooperative/skills/report/SKILL.md
Generate Growth Map (epistemic profile + insights integration) from session patterns and workflow data.
Decision brief
Generate a Growth Map from a user's Claude Code sessions — integrating /insights data with session analysis for protocol recommendations with dual-layer resolution (execution + epistemic). Falls back to Epistemic Profile when insights data is unavailable.
Compatibility matrix
| Platform | Status | Evidence | What to check |
|---|---|---|---|
| Codex | Not declared | No explicit evidence | Portability before use |
| Claude Code | Not declared | No explicit evidence | Portability before use |
| Cursor | Not declared | No explicit evidence | Portability before use |
| Gemini CLI | Not declared | No explicit evidence | Portability before use |
Installation
The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.
npx skills add https://github.com/jongwony/epistemic-protocols --skill "epistemic-cooperative/skills/report"Inspect the Agent Skill "report" from https://github.com/jongwony/epistemic-protocols/blob/45c5f84ce13471b8c0447242290a7faa3bfa5ce6/epistemic-cooperative/skills/report/SKILL.md at commit 45c5f84ce13471b8c0447242290a7faa3bfa5ce6. 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
Review the “Workflow Overview” section in the pinned source before continuing.
Join key: sessionid from sessions-index.json matches filename in both directories. Availability: Only exists if user has run /insights (built-in command). Read-only consumption — never write to these caches.
Call project-scanner subagent to handle all project discovery. Phase 1 inherently requires 5+ Bash calls (directory listing, stat, file reads), always exceeding the delegation threshold. Pre-planned delegation avoids reactive interruption.
Call project-scanner subagent to handle all project discovery. Phase 1 inherently requires 5+ Bash calls (directory listing, stat, file reads), always exceeding the delegation threshold. Pre-planned delegation avoids reactive interruption.
1. Use session JSONL paths from Phase 1 project-scanner output (3 most recently modified sessions per project, maximum 9 total). 2. Facets availability check: Glob {configdir}/usage-data/facets/.json once, intersect returned filenames (stem = sessionid) with selected session IDs…
Permission review
The documentation asks the agent to run terminal commands or scripts.
*Availability**: Only exists if user has run `/insights` (built-in command). Read-only consumption — never write to these caches.The documentation asks the agent to read local files, directories, or repositories.
If present: Grep report.html for section-identifying patterns (heading text, `id=` attributes), then Read with offset/limit per section. Never Read entire file if >500 lines.Evidence record
| Signal | Value | Evidence type | Meaning |
|---|---|---|---|
| Quality score | 91/100 | Computed | Documentation, specificity, maintenance, and trust rules |
| Repository stars | 160 | Source | Repository attention, not individual Skill quality |
| Compatibility | 0 platforms | Source | Declared in the catalog source record |
| Usage guide | automated source guide | Editorial | Generated or reviewed according to the visible evidence level |
Pinned source
Generate a Growth Map from a user's Claude Code sessions — integrating /insights data with session analysis for protocol recommendations with dual-layer resolution (execution + epistemic). Falls back to Epistemic Profile when insights data is unavailable.
Invoke this skill when:
Skip when:
SCAN → EXTRACT → MAP → PRESENT → GUIDE
| Phase | Owner | Tool | Decision Point |
|---|---|---|---|
| 1. Scan | Subagent + Main | Bash, Read, Glob | Project discovery + insights detection |
| 2. Extract | Subagent (session-analyzer) | Grep, Read | Pattern extraction from JSONL |
| 3. Map | Main | — | Pattern → Protocol matching |
| 4. Present | Main | Gate, Write, Bash | User confirmation + Growth Map HTML |
| 5. Guide | Main | Gate | Protocol trial CTA |
| Source | Method | Extracts |
|---|---|---|
sessions-index.json (recent 3 projects) | Read | firstPrompt (start patterns), summary (result patterns), messageCount (conversation length) |
| Session JSONL (up to 3 per project) | Grep "tool_use" | Tool usage frequency distribution (Edit/Read/Bash/AskUserQuestion ratios) |
| Session JSONL | Grep command-name | Slash command history (existing protocol usage) |
| Session JSONL | Grep "Bash" + keywords | Execution patterns (deploy, push, test, install frequency) |
| Session JSONL (pattern evidence) | Grep (context) + Read (offset/limit) | Context snippets: (user message, AI response) pairs near pattern evidence |
Paths below written {config_dir}/… take {config_dir} = CLAUDE_CONFIG_DIR when set, else ~/.claude. Resolve it ONCE per invocation with Bash printf '%s\n' "${CLAUDE_CONFIG_DIR-$HOME/.claude}" and substitute the absolute result before any Read/Glob/Grep call.
| Source | Method | Extracts |
|---|---|---|
{config_dir}/CLAUDE.md | Read | Workflow style keywords (team, delegation, safety) |
{config_dir}/rules/ | Glob | Rule file presence (which domains are rule-governed) |
{config_dir}/settings.json | Read (hooks only) | Hook usage patterns |
| MEMORY.md (if exists) | Read | Existing insights, recurring patterns |
| Source | Method | Extracts |
|---|---|---|
{config_dir}/usage-data/facets/{session_id}.json | Read | friction_counts, friction_detail, goal_categories, session_type, outcome, user_satisfaction_counts, brief_summary, underlying_goal, primary_success, claude_helpfulness |
{config_dir}/usage-data/session-meta/{session_id}.json | Read | tool_counts, git_commits, git_pushes, languages, uses_task_agent, duration_minutes, first_prompt, user_response_times, message_hours |
Join key: session_id from sessions-index.json matches filename in both directories.
Availability: Only exists if user has run /insights (built-in command). Read-only consumption — never write to these caches.
| Source | Method | Extracts |
|---|---|---|
{config_dir}/usage-data/report.html | Read + best-effort parsing | at_a_glance, interaction_style, what_works, friction_analysis, suggestions, on_the_horizon, project_areas |
Availability: Only exists after /insights execution. Enables Growth Map Path A (epistemic-lens analysis using insights as targeting input). Parsing is best-effort — HTML structure changes trigger graceful fallback to Epistemic Profile mode.
Relationship: insights = 1st pass (behavioral sweep), report = 2nd pass (epistemic resolution). Report consumes insights' analyzed data as input, not output — generates orthogonal epistemic analysis that insights cannot produce.
Independence: growth_map_path (A/B from insights availability) is orthogonal to Phase 2 Path A/B (facets availability per project). Growth Map path controls analysis depth; facets path controls extraction method.
Call project-scanner subagent to handle all project discovery. Phase 1 inherently requires 5+ Bash calls (directory listing, stat, file reads), always exceeding the delegation threshold. Pre-planned delegation avoids reactive interruption.
The subagent:
{config_dir}/projects/stat for modification time)-Users-choi-myproject → ~/myproject). Records project path ↔ session mapping for Phase 4 resume commandssessions-index.json{config_dir}/CLAUDE.md, {config_dir}/rules/, {config_dir}/settings.json, MEMORY.mdInsights detection (main agent, concurrent with project-scanner — no dependency on subagent output):
{config_dir}/usage-data/report.html — existence checkid= attributes), then Read with offset/limit per section. Never Read entire file if >500 lines.
growth_map_path = A, store extracted sections as targeting inputs for epistemic-lens analysisgrowth_map_path = B (graceful degradation, no error)growth_map_path = BMain agent awaits both project-scanner output and insights detection, then proceeds to Phase 2.
Edge cases:
{config_dir}/projects/ does not exist or is empty: subagent reports absence (secondary sources still scanned), main agent skips Phase 2 extraction (steps 1-3), proceeds to Phase 2 step 5 (secondary sources from Phase 1 output) and Phase 3, set Tier 3sessions-index.json cannot be parsed (corrupted JSON): subagent skips that project, continues with remaining/ and . replaced by -. Subagent uses heuristics (home directory prefix, known directory structure) to reconstruct readable ~/... pathsIf no sessions-index.json found in any project, skip Phase 2 extraction (steps 1-3), proceed to Phase 2 step 5 (secondary sources from Phase 1 output) and Phase 3, set fallback tier to Tier 3.
{config_dir}/usage-data/facets/*.json once, intersect returned filenames (stem = session_id) with selected session IDs. Determine path per project:
firstPrompt text from sessions-index.json for ambiguity/exploration keywords:
improve, optimize, something likeideas for, brainstorm and Korean equivalentsexplore, investigate, look into and Korean equivalents{config_dir}/CLAUDE.md: keywords indicating team work, delegation preferences, safety focus{config_dir}/rules/: which domains have explicit rules (communication, boundaries, etc.){config_dir}/settings.json: hook configurations (safety consciousness indicator)Apply the mapping tables below to match observed patterns to protocols.
Present analysis summary via gate interaction:
On confirmation, generate Growth Map HTML artifact via Write tool:
{config_dir}/.report/growth-map.htmlgrowth_map_path:Path A — Growth Map (insights as targeting input, epistemic-lens output):
Architecture: 2-Pass Compiler. insights = 1st pass (behavioral sweep), report = 2nd pass (epistemic resolution). Each section uses insights data as input to generate analysis insights cannot produce — protocol adoption patterns, epistemic coverage gaps, deficit detection.
| # | Section | Insights Input (targeting) | Report Output (orthogonal) |
|---|---|---|---|
| ① | Epistemic Snapshot | at_a_glance (context) | Protocol coverage delta: which decision types are structured vs unstructured. Gap between friction frequency and protocol adoption |
| ② | Epistemic Profile | interaction_style (baseline) | Protocol adoption trajectory: which protocols used when, adoption curve over time, preference patterns (planning vs verification vs execution) |
| ③ | Protocol Impact | what_works (positive-session targets) | Cases where protocol usage correlated with better outcomes: protocol-present sessions vs protocol-absent sessions with similar goals |
| ④ | Growth Opportunities | friction_analysis + suggestions | Anti-patterns (protocol applicable but absent) + dual-layer resolution cards |
| ⑥ | Recommendations + Install | Report mapping tables | Protocol recommendations + install commands + batch install |
| ⑦ | Next Protocols | on_the_horizon (context) | Protocol adoption path: which protocols to learn next based on work trajectory + epistemic gap analysis |
Note: ⑤ Coverage is reserved for Phase 2 (dashboard absorption). Uses project_areas from Quaternary + coverage-scanner data.
④ Growth Opportunities — dual-layer cards: Each friction item as a card with two resolution layers:
suggestions/command CTA (structural fix) — sourced from report anti-pattern analysisPath B — Epistemic Profile (report-only fallback):
/insights first for a richer Growth Map"Refer to references/html-template.md for the HTML skeleton, CSS classes, and section templates.
Open HTML artifact in default browser via Bash: cfg="${CLAUDE_CONFIG_DIR-$HOME/.claude}"; open "${cfg:+$cfg/}.report/growth-map.html"
Check plugin installation: verify whether recommended protocols are installed
{config_dir}/plugins/cache/epistemic-protocols/{plugin-name}/*/skills/*/SKILL.md. If found, the protocol is installed./gap right now in your current session")claude plugin install epistemic-protocols/{plugin-name} or marketplace URLscripts/install.sh)Present a concrete usage scenario for the top recommendation:
/gap before committing can surface blind spots that drive rework"Close with: "Refer to the HTML profile for remaining recommendations. You can re-run /report anytime for updated analysis."
| Observable Pattern | Detection Method | Protocol | Rationale |
|---|---|---|---|
| Same file edited 3+ times | Edit path frequency | Syneidesis /gap | Repeated edits without prior gap check |
| Exploration ratio 3:1+ across multiple sessions | (Read+Grep+Glob) / (Edit+Write) threshold | Prothesis /frame | Sustained exploration without analytical framework |
| Vague first prompts ("improve", "optimize") | firstPrompt keyword match: short underspecified directives | Euporia /elicit | Goal coordinate aporia — reverse-induce endpoint from substrate |
| Ideation-shaped first prompts ("ideas for", "brainstorm") | firstPrompt keyword match: ideation asks | Heuresis /ideate | Candidate field underexpanded — frame-parallel divergence before any selection |
| Verification keywords in firstPrompt (user-authored text only) | firstPrompt keyword match: "explain", "what did you do", "help me understand", "verify", "check" | Katalepsis /grasp | Need to verify comprehension of results |
Merismos excluded by design: /apportion's deficit is ¬condition_bearing(G) — whether a goal already carries units whose completion conditions are settled. No observable available to this skill (firstPrompt keywords, a configured stop-hook) can establish that negative; each only detects that an autonomous interval is intended, which is equally true of a goal that is already condition-bearing. A row built on either observable therefore cannot honestly claim a deficit match at any strength, so none is carried here — matching dashboard/SKILL.md's coverage table, which marks Merismos N/A for the identical reason. /apportion stays discoverable through /catalog and /onboard, neither of which claims deficit detection.
No environment pattern currently clears the accuracy bar for a protocol match (a stop-hook/completion-enforcer configuration was previously mapped to Merismos here; removed for the same reason as above — hook presence alone cannot establish ¬condition_bearing(G)). Reserved for a future observable that can establish a deficit rather than merely a correlated setup step.
Applied only when facets data is available (Path A). Complements Primary and Secondary — does not replace them.
| Friction Key | Protocol | Rationale | Signal Type |
|---|---|---|---|
wrong_approach | Syneidesis /gap | Approach gap undetected | Primary |
wrong_approach + rework situation | Syneidesis /gap | Approach gap undetected, accompanied by rework | Primary |
excessive_changes | Syneidesis /gap | Scope boundary gap undetected | Primary |
context_loss | Aitesis /inquire | Information loss due to insufficient context | Primary |
wrong_file_edited | Syneidesis /gap | Scope boundary gap undetected — the edit landed outside intent | Primary |
buggy_code, api_errors/api_error, tool_errors/tool_error/tool_failure/tool_limitation, external_blocker/external_dependency, merge_conflict, minor_correction, excessive_verification/excessive_tool_calls, unrelated_environment_issue/deployment_gap, agent_* | — | Infrastructure/environment friction — not epistemic deficit | Environmental |
Signal Type: Primary = directly maps to protocol deficit. Environmental = reported only (no mapping).
Interaction: friction Primary signals are additive with existing Primary/Secondary signals. Same-protocol evidence escalates strength (Weak+friction=Strong).
Co-change: friction keys must be synchronized with agents/session-analyzer.md Targeted Step Tier 2 behavioral proxies.
Composition rules (protocol chaining based on pattern combinations) are deferred to a future version.
Applied only when growth_map_path = A. Friction-to-protocol mapping uses the Tertiary table (unchanged). This table maps non-friction insights signals as targeting inputs for Growth Map ④ Growth Opportunities dual-layer cards.
| Metric | Signal | Protocol | Rationale |
|---|---|---|---|
suggestions.usage_patterns | behavioral recommendation | — (execution layer) | CLAUDE.md / config suggestion |
suggestions.features_to_try | tool adoption gap | — (execution layer) | Feature utilization improvement |
| session_type = exploration (high ratio) | framework absence | Prothesis | Sustained exploration without analytical framework |
| user_satisfaction low sessions | deep-dive target | — (priority signal) | Protocol absence in dissatisfied sessions |
| response_time long segments | deliberation point | — (priority signal) | Epistemic deficit candidate |
Tier 1 (3+ strong patterns): Map precisely to observed patterns.
Tier 2 (1-2 weak patterns): Map observed patterns + add supplementary "also useful in these situations" recommendations.
Tier 3 (No patterns / new user): Recommend the Starter Trio — three universally applicable protocols:
/gap — When you want to check for blind spots before deciding/inquire — When execution context feels insufficient/bound — When ownership of multi-domain decisions is unclearSelection rationale: covers the three most common entry points — decision auditing, context grounding, and boundary definition. Low entry barrier, independently usable.
Aitesis is pattern-matched via the Tertiary Mapping Table (context_loss friction key, Path A only). The following protocol is not yet pattern-matched and remains available for manual invocation:
/contextualize — Detect application-context mismatch after execution. Use when correct output may not fit the actual deployment context.Epharmoge will be integrated into pattern-based detection in a future version as reliable detection heuristics are developed.
Refer to references/html-template.md for the full HTML skeleton, CSS classes, and detailed artifact guidelines.
/report multiple times produces updated results based on latest data. Previous artifacts are overwritten.growth_map_path = B fallback, not an error. HTML structure changes are expected — minimize CSS class/ID dependency.growth_map_path = A, use insights' LLM-analyzed data as targeting input — do not re-analyze raw sessions for what insights already processed (token efficiency). Generate orthogonal epistemic analysis: insights identifies WHAT happened (behavioral narrative), report analyzes WHICH epistemic structures were absent (protocol-lens). Transform the insights narrative into protocol adoption analysis, coverage gap detection, and anti-pattern identification.Frequently asked questions
Generate a Growth Map from a user's Claude Code sessions — integrating /insights data with session analysis for protocol recommendations with dual-layer resolution (execution + epistemic). Falls back to Epistemic Profile when insights data is unavailable.
The source record exposes this install command: npx skills add https://github.com/jongwony/epistemic-protocols --skill "epistemic-cooperative/skills/report". Inspect the command and pinned source before running it.
Static rules flagged exec-script, read-files in the source; the page lists the matching lines and excerpts.
Alternatives
alirezarezvani/claude-skills
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
wanshuiyin/Auto-claude-code-research-in-sleep
Use it for operations and research tasks; the detail page covers purpose, installation, and practical steps.
prowler-cloud/prowler
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
brucesongs/kali-claw
Insecure Design (OWASP A06:2025) focuses on security flaws in system architecture and design phases, rather than code implementation-level bugs.