effort-map
Read the current project's current and prior Claude Code or Codex sessions, extract every prompt, score five effort metrics 0-100 with reasons, estimate average tokens and time per session, and render a self-contained light-theme HTML report. Use when the user runs /effort-map or asks how much effort, thought, bug-fixing, UX tuning, architecture care, or copy-paste slop went into a project.
- License 许可
- Unlicense
- 最近更新
- 2026-11-13
- Stars
- ★ 21
- Forks
- 9
01 前言 Front Matter
- name
- effort-map
- description
- Read the current project's current and prior Claude Code or Codex sessions, extract every prompt, score five effort metrics 0-100 with reasons, estimate average tokens and time per session, and render a self-contained light-theme HTML report. Use when the user runs /effort-map or asks how much effort, thought, bug-fixing, UX tuning, architecture care, or copy-paste slop went into a project.
02 资源文件 2
- 脚本scripts/collect_sessions.py7.6 KB
- 脚本scripts/render_report.py8.0 KB
03 SKILL.md 正文
Effort Map
Score how much real effort went into the current project by reading its agent sessions, then produce effort-DD-MM-YYYY-report.html.
Workflow
- Detect the active agent:
claudewhen running in Claude Code,codexwhen running in Codex. - Collect the sessions for the current project. From this skill directory run:
Addpython3 scripts/collect_sessions.py --project "$PWD" \ --output /tmp/effort-map-sessions.jsonl --stats /tmp/effort-map-stats.json--agent claudeor--agent codexonly if automatic detection fails. The command prints token and time stats and writes the normalized transcript. - Treat the current folder as the project boundary. Stop with a clear message when no matching sessions exist.
- Read
/tmp/effort-map-sessions.jsonlin chunks. Collect everyuserprompt verbatim (trim noise, drop tool-result echoes and system reminders). - Score each metric from 0 to 100 from the evidence in the transcript, and write one honest sentence of WHY for each:
- effort — reasoning, planning, and iteration versus one-shotting.
- bugs — time and turns spent chasing and fixing bugs.
- experience — tuning UX, polish, and details versus generate-and-done.
- architecture — care about stack, structure, and design decisions.
- copy_slop — copying other solutions with no changes or taste (high = more slop).
- Merge the stats from
/tmp/effort-map-stats.json(avg_tokens,total_tokens,avg_time_minutes,sessions_matched). Do not invent token or time numbers; use the ones the collector computed. - Write
/tmp/effort-map-findings.json:{ "agent": "Claude", "project": "project-name", "generated": "2026-07-06", "sessions_analyzed": 12, "prompts": ["first prompt", "second prompt"], "stats": { "avg_tokens": 45231, "total_tokens": 542772, "avg_time_minutes": 23.4 }, "metrics": { "effort": {"score": 72, "why": "..."}, "bugs": {"score": 40, "why": "..."}, "experience": {"score": 65, "why": "..."}, "architecture": {"score": 80, "why": "..."}, "copy_slop": {"score": 15, "why": "..."} } } - Render the report. From this skill directory run:
python3 scripts/render_report.py --input /tmp/effort-map-findings.json --output-dir "$PWD" - Return the absolute report path, the five scores, and the session count.
Scoring Rules
- Score from evidence only. Base each number on what the transcript shows, not on a guess about the user.
- Keep every WHY to one specific sentence that names what happened.
- Remove secrets, credentials, and personal data from prompts before writing them.
- Never modify the project while scoring. The only file written into the project is the HTML report.
04 同仓库更多 Skills
word-count
Counts the words, lines and characters of a text or a file.
slugify
Turns a title or a sentence into a URL slug, lowercase words joined by hyphens with accents removed.
json-format
Validates a JSON file and pretty prints it with two space indentation, or reports where the JSON is invalid.
commit-message
Writes a conventional commit message for the staged git changes.
skills-gateway
Gateway and router to a catalog of skills that are not registered directly. Use it before any task a specialized skill could handle, such as text, JSON or git chores. It finds the right skill and loads its instructions.
decision-log
Record, list, show and supersede architecture decisions that persist across sessions in the shared agent infra state store. Use when the user says "record this decision", "log an ADR", "what did we decide about", "list decisions", or "supersede decision".