{"id":"cfa20a9f-c361-47d0-8115-a7ec6e8fa8bb","shortId":"bBScBk","kind":"skill","title":"audit-history","tagline":"Use when reviewing past agent sessions, auditing memory health, identifying repeated corrections or friction, cleaning up stale memories, proposing new skills and rules from usage patterns, or identifying mechanical improvements (testing, linting, static analysis, tooling) that c","description":"# Audit History\n\nReview past agent sessions and memory files to surface friction patterns, stale memories, and gaps. Synthesize findings into ranked recommendations for new skills, rules, and memory cleanup actions.\n\n## Phase 1 -- Discover Sources\n\n### Transcripts\n\nTranscripts come from two sources. Both use JSONL format but have different schemas.\n\n#### Cursor\n\nCursor agent transcripts live under `~/.cursor/projects/*/agent-transcripts/`.\n\n1. List all project workspace directories under `~/.cursor/projects/`\n2. For each, list `.jsonl` files in `agent-transcripts/`\n3. **Distinguish parent from subagent transcripts**: parent transcripts are top-level `.jsonl` files; subagent transcripts live in subdirectories named by the parent's UUID. Only analyze parent transcripts\n\n#### Claude Code\n\nClaude Code session transcripts live under `~/.claude/projects/*/sessions/`. Project directory names are URL-encoded absolute paths (e.g. `%2FUsers%2Fpaul%2Fsrc%2Fmyproject`).\n\n1. List all project directories under `~/.claude/projects/`\n2. For each, list `.jsonl` files in `sessions/`\n\n### Memory\n\nMemory files live under `~/.claude/projects/*/memory/`.\n\n1. Scan all project directories for `memory/` subdirectories\n2. For each, list `.md` files (separate MEMORY.md index from content files)\n3. Also scan `~/.claude/rules/` for global rules (needed for duplicate detection)\n\n### Inventory\n\nReport the combined inventory before proceeding:\n\n```\nFound N transcripts across M projects, Z memories across P projects:\n\nCursor (X transcripts):\n- project-a: X1 transcripts\n\nClaude Code (Y transcripts, Z memories):\n- project-b: Y1 transcripts, Z1 memories (feedback x2, project x1)\n- project-c: Y2 transcripts, 0 memories\n\nGlobal rules: R rules in ~/.claude/rules/\nEmpty memory directories: [list]\nProjects with sessions but no memories: [list]\n```\n\n## Phase 2 -- Batch and Dispatch\n\nLaunch transcript subagents and memory subagent **in parallel**.\n\nEach subagent prompt follows `subagent-prompt-contract`: state the goal in one sentence, paste the file list and extraction schema inline (do **not** ask the subagent to re-read this SKILL.md), cap the output at the schema below, and prefix the return with the four-state Status line so Phase 3 can branch on it without parsing the body:\n\n```\nStatus: DONE | DONE_WITH_CONCERNS | BLOCKED | NEEDS_CONTEXT\n<the per-transcript or per-memory entries below>\n```\n\n- **DONE_WITH_CONCERNS**: the subagent extracted everything but flags ambiguity (e.g. corrections in a foreign language, transcripts with mixed Cursor/Claude formats).\n- **BLOCKED**: a transcript wouldn't parse, a file disappeared mid-batch, etc. Skip and move on.\n- **NEEDS_CONTEXT**: the parent didn't specify scope filtering and the batch is too large; lists which subset to retry with.\n\n### Transcript Subagents\n\nSplit transcripts into batches of ~25-30 for parallel processing.\n\n1. Launch up to 4 parallel subagents, one per batch\n2. Each subagent receives a file list and the extraction schema below\n3. Use `model: haiku` per `subagent-model-routing` — schema-driven extraction with bounded output; no synthesis required\n4. Use `jq` for JSONL extraction instead of reading raw content or using Python:\n   - User messages: `jq -c 'select(.role == \"human\" or .role == \"user\") | .content' < file.jsonl`\n   - Tool use: `jq -c 'select(.type == \"tool_use\") | {tool: .name}' < file.jsonl`\n   - Message counts: `jq -c '.role' < file.jsonl | sort | uniq -c`\n   - Truncate large fields: pipe through `jq '.content |= (tostring | .[0:500])'`\n\n#### Transcript Extraction Schema\n\n```\nFor each transcript (.jsonl file), extract:\n\n- **Topic/title**: 3-6 word summary\n- **User corrections**: instances where the user redirected the agent\n  Signals: \"no\", \"stop\", \"actually\", \"don't\", \"wrong\", \"drop\",\n  \"wait\", \"not what I asked\", \"undo\", \"revert\"\n  Quote the user's exact words\n- **Repeated commands**: commands typed multiple times\n- **Frustrations/friction**: anything that slowed the user down or caused rework\n- **Technologies/tools**: languages, frameworks, CLIs, MCP servers used\n\nReturn per transcript:\n  Source: Cursor | Claude Code\n  UUID: <filename without .jsonl>\n  Topic: <3-6 words>\n  Corrections: [quoted corrections]\n  Repeated commands: [list]\n  Friction: [friction points]\n  Tools: [list]\n```\n\n### Memory Subagent (two-stage)\n\nThe memory analysis uses a two-stage pipeline per `subagent-model-routing`:\n\n**Stage 1 — Structural checks (Haiku):** Launch **1 subagent** (`model: haiku`) to perform mechanical checks across all memory files. Haiku's output becomes inline context for Stage 2.\n\nStructural checks:\n\n- MEMORY.md entries pointing to missing files on disk\n- Files on disk not listed in MEMORY.md\n- Empty memory directories or empty MEMORY.md files\n\nContent staleness checks:\n\n- For memories with `originSessionId`, verify the session `.jsonl` file still exists\n- For memories referencing specific file paths in content, check paths exist (`test -f`)\n- Compare memory content against global rules in `~/.claude/rules/` -- flag if a memory substantially duplicates a global rule\n- Check project activity: if no session files modified in last 30 days, flag as inactive\n\nStage 1 returns the full Memory Extraction Schema output (see below), prefixed with `Status: ...`.\n\n**Stage 2 — Cross-project synthesis (Sonnet):** Launch **1 subagent** (`model: sonnet`) with the Stage 1 structured output pasted inline. This stage handles reasoning that requires comparing across projects.\n\nCross-project checks:\n\n- Overlapping memories across projects (candidates for global rule promotion)\n- Contradicting memories across projects (may be intentional project-specific overrides -- flag for review, don't auto-classify as errors)\n\n#### Memory Extraction Schema\n\n```\nFor each memory file, extract:\n  Project: <project name>\n  File: <filename>\n  Type: user | feedback | project | reference\n  OriginSession: <UUID or none>\n  OriginSessionExists: true | false\n  InMemoryIndex: true | false\n  ReferencedPaths: [file paths mentioned in content]\n  ReferencedPathsExist: [true/false each]\n  DuplicatesGlobalRule: <rule filename or none>\n  Staleness: fresh | structural-issue | content-stale | project-inactive\n```\n\n## Phase 3 -- Aggregate and Rank\n\nAfter all subagents complete:\n\n1. Merge transcript findings from all batches\n2. Group friction patterns across sessions -- count how many sessions each pattern appears in\n3. Rank by frequency (most common first)\n4. Cross-reference with existing skills and rules:\n   - Scan `~/.cursor/skills/` and `~/.claude/skills/` for personal skills\n   - Scan `~/.cursor/rules/` and `~/.claude/rules/` for personal rules\n   - Scan `.cursor/skills/`, `.cursor/rules/`, `.claude/skills/`, `.claude/rules/` in project workspaces under `~/src/`\n5. Identify rules duplicated across multiple projects (candidates for promotion to user-level)\n6. Note which friction patterns are already addressed by existing skills/rules\n7. **Cross-reference memory with friction**:\n   - If a friction pattern matches an existing memory's guidance but kept recurring → \"memory exists but not effective\"\n   - If repeated friction has no corresponding memory → \"missing memory\"\n8. Rank memory issues by severity: structural > content-stale > project-inactive\n\n## Phase 4 -- Synthesize Recommendations\n\n### Recommendation Types\n\n- **Skill**: reusable multi-step workflow the agent executes\n- **Rule**: behavioral guidance that shapes how the agent works\n- **Memory**: project-specific context that should be created, updated, or promoted to a global rule\n- **Mechanical improvement**: tooling, configuration, or infrastructure change that prevents classes of errors without agent behavioral changes (e.g. linter rules, static analysis checks, git hooks, pre-commit hooks, test coverage for friction-prone areas, CI checks)\n\n### For Each Recommendation\n\nProvide:\n- **Name**: following verb-first / gerund naming convention\n- **Type**: skill, rule, memory, or mechanical\n- **Evidence**: session count + example quotes from transcripts, or memory analysis findings\n- **Proposed content outline**: key sections and what they'd cover (for skills/rules/memory) or specific tooling/config change (for mechanical)\n\nUse the `create-skill` skill to author any recommended skills.\n\n### Mechanical Improvement Signals\n\nLook for these patterns in transcripts that indicate a mechanical fix would help:\n\n- **Same error corrected multiple times** → linter rule or static analysis check could catch it automatically\n- **Manual formatting or style corrections** → formatter config or pre-commit hook\n- **Repeated test failures in the same area** → missing test coverage or flaky test infrastructure\n- **Agent repeatedly running the same verification steps** → CI check, git hook, or hook automation\n- **Type errors or nil panics discovered late** → stricter compiler flags, `staticcheck`, `golangci-lint` rules\n- **Proto/API issues caught in review** → `buf lint` or `buf breaking` rules\n\n### Output Format\n\nPresent findings as a plan with three sections:\n\n**Ranked friction table:**\n\n```markdown\n| Rank | Pattern | Sessions | Example quotes | Memory |\n|------|---------|----------|----------------|--------|\n| 1    | ...     | ~N       | \"...\"          | Gap    |\n| 2    | ...     | ~N       | \"...\"          | Stale  |\n```\n\n**Memory health table:**\n\n```markdown\n| Status | Project | Memory | Issue | Action |\n|--------|---------|--------|-------|--------|\n| STALE  | ...     | ...    | Duplicates global rule | Remove |\n| ORPHAN | ...     | ...    | Not in MEMORY.md | Add to index |\n| GAP    | ...     | —      | N sessions, 0 memories | Review |\n| EMPTY  | ...     | —      | Empty memory dir | Remove |\n```\n\n**Recommendations:**\n\n```markdown\n### N. `name` (type: skill|rule|memory|mechanical)\n\nEvidence: appeared in ~N sessions / found in memory analysis\n- \"quoted correction\" (session UUID)\n\nProposed content:\n- Section 1: ...\n- (for mechanical: specific tool, config change, or hook to add)\n```\n\n## Phase 5 -- Memory Cleanup Plan\n\nAlways runs after Phase 4. Produces a **dry-run report only** -- does not execute anything.\n\nCategorize proposed actions by risk:\n\n**Safe removals** (no content loss):\n- Empty memory directories with no files\n- Memories that exactly duplicate a global rule in `~/.claude/rules/`\n\n**Index fixes** (structural repairs):\n- Add missing files to MEMORY.md\n- Remove MEMORY.md entries pointing to nonexistent files\n\n**Requires judgment** (present for review):\n- Merging overlapping memories\n- Removing memories for inactive projects (may just be paused)\n- Memories that partially overlap global rules\n\n## Phase 6 -- Execute Cleanup\n\nAfter presenting the cleanup plan, ask the user:\n\n```\nWould you like me to execute any cleanup actions?\n1. Safe removals only\n2. Safe removals + index fixes\n3. All (confirm each judgment item individually)\n4. Skip cleanup\n```\n\nFor each action executed:\n- Delete files or directories as needed\n- Rewrite MEMORY.md indexes to match actual files\n- For merges: show proposed merged content before writing\n- Log every action taken\n\n## Notes\n\n- When the user scopes the analysis (e.g. \"just the last 2 weeks\", \"only this project\"), filter accordingly by modification time or project path\n- If the user has previously run this analysis, diff against prior findings to surface new patterns\n- Present all findings as a plan for user review before creating any skills, rules, or executing cleanup","tags":["audit","history","skill","issue","paultyng","agent-skills","ai-tools","claude-code","cursor","dotfiles"],"capabilities":["skill","source-paultyng","skill-audit-history","topic-agent-skills","topic-ai-tools","topic-claude-code","topic-cursor","topic-dotfiles"],"categories":["skill-issue"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/paultyng/skill-issue/audit-history","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add paultyng/skill-issue","source_repo":"https://github.com/paultyng/skill-issue","install_from":"skills.sh"}},"qualityScore":"0.454","qualityRationale":"deterministic score 0.45 from registry signals: · indexed on github topic:agent-skills · 8 github stars · SKILL.md body (11,434 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-18T19:08:59.998Z","embedding":null,"createdAt":"2026-05-18T13:21:24.539Z","updatedAt":"2026-05-18T19:08:59.998Z","lastSeenAt":"2026-05-18T19:08:59.998Z","tsv":"'-30':438 '-6':550,616 '/.claude/projects':152,174,188 '/.claude/rules':213,276,733,934,1391 '/.claude/skills':927 '/.cursor/projects':95,104 '/.cursor/rules':932 '/.cursor/skills':925 '/agent-transcripts':96 '/memory':189 '/sessions':153 '/src':947 '0':269,537,1302 '1':72,97,168,190,442,649,654,759,780,787,887,1272,1335,1452 '2':105,175,198,289,452,674,773,894,1275,1456,1511 '25':437 '2fmyproject':167 '2fpaul':165 '2fsrc':166 '2fusers':164 '3':115,210,354,464,549,615,879,908,1461 '30':753 '4':446,483,915,1021,1355,1468 '5':948,1347 '500':538 '6':962,1432 '7':973 '8':1007 'absolut':161 'accord':1517 'across':231,236,662,799,807,816,898,952 'action':70,1286,1369,1451,1473,1498 'activ':745 'actual':565,1486 'add':1296,1345,1396 'address':969 'agent':8,45,91,113,561,1033,1042,1073,1212 'agent-transcript':112 'aggreg':880 'alreadi':968 'also':211 'alway':1351 'ambigu':380 'analysi':37,636,1080,1124,1180,1327,1506,1531 'analyz':141 'anyth':590,1366 'appear':906,1320 'area':1094,1204 'ask':325,574,1440 'audit':2,10,41 'audit-histori':1 'author':1151 'auto':831 'auto-classifi':830 'autom':1225 'automat':1185 'b':255 'batch':290,403,420,435,451,893 'becom':669 'behavior':1036,1074 'block':368,392 'bodi':362 'bound':478 'branch':356 'break':1250 'buf':1246,1249 'c':40,266,500,512,523,528 'candid':809,955 'cap':334 'catch':1183 'categor':1367 'caught':1243 'caus':597 'chang':1066,1075,1141,1341 'check':651,661,676,701,721,743,804,1081,1096,1181,1220 'ci':1095,1219 'class':1069 'classifi':832 'claud':144,146,247,611 'claude/rules':942 'claude/skills':941 'clean':18 'cleanup':69,1349,1434,1438,1450,1470,1556 'clis':602 'code':145,147,248,612 'combin':224 'come':77 'command':584,585,622 'commit':1086,1196 'common':913 'compar':726,798 'compil':1234 'complet':886 'concern':367,373 'config':1192,1340 'configur':1063 'confirm':1463 'content':208,493,507,535,699,720,728,862,873,1015,1127,1333,1375,1493 'content-stal':872,1014 'context':370,410,671,1048 'contract':308 'contradict':814 'convent':1108 'correct':15,382,554,618,620,1173,1190,1329 'correspond':1003 'could':1182 'count':521,900,1117 'cover':1135 'coverag':1089,1207 'creat':1052,1147,1550 'create-skil':1146 'cross':775,802,917,975 'cross-project':774,801 'cross-refer':916,974 'cursor':89,90,239,610 'cursor/claude':390 'cursor/rules':940 'cursor/skills':939 'd':1134 'day':754 'delet':1475 'detect':220 'didn':413 'diff':1532 'differ':87 'dir':1308 'directori':102,155,172,194,279,694,1379,1478 'disappear':400 'discov':73,1231 'disk':684,687 'dispatch':292 'distinguish':116 'done':364,365,371 'dri':1359 'driven':475 'drop':569 'dry-run':1358 'duplic':219,739,951,1288,1386 'duplicatesglobalrul':866 'e.g':163,381,1076,1507 'effect':997 'empti':277,692,696,1305,1306,1377 'encod':160 'entri':678,1403 'error':834,1071,1172,1227 'etc':404 'everi':1497 'everyth':377 'evid':1115,1319 'exact':581,1385 'exampl':1118,1269 'execut':1034,1365,1433,1448,1474,1555 'exist':712,723,920,971,986,994 'extract':320,376,461,476,488,540,547,764,836,842 'f':725 'failur':1200 'fals':853,856 'feedback':260,847 'field':531 'file':49,110,128,180,185,203,209,317,399,457,546,665,682,685,698,710,717,749,841,844,858,1382,1398,1407,1476,1487 'file.jsonl':508,519,525 'filter':417,1516 'find':59,890,1125,1255,1535,1542 'first':914,1105 'fix':1168,1393,1460 'flag':379,734,755,825,1235 'flaki':1209 'follow':304,1102 'foreign':385 'format':84,391,1187,1253 'formatt':1191 'found':228,1324 'four':348 'four-stat':347 'framework':601 'frequenc':911 'fresh':868 'friction':17,52,624,625,896,965,979,982,1000,1092,1263 'friction-pron':1091 'frustrations/friction':589 'full':762 'gap':57,1274,1299 'gerund':1106 'git':1082,1221 'global':215,271,730,741,811,1058,1289,1388,1429 'goal':311 'golangci':1238 'golangci-lint':1237 'group':895 'guidanc':989,1037 'haiku':467,652,657,666 'handl':794 'health':12,1279 'help':1170 'histori':3,42 'hook':1083,1087,1197,1222,1224,1343 'human':503 'identifi':13,31,949 'improv':33,1061,1156 'inact':757,877,1019,1419 'index':206,1298,1392,1459,1483 'indic':1165 'individu':1467 'infrastructur':1065,1211 'inlin':322,670,791 'inmemoryindex':854 'instanc':555 'instead':489 'intent':820 'inventori':221,225 'issu':871,1010,1242,1285 'item':1466 'jq':485,499,511,522,534 'jsonl':83,109,127,179,487,545,709 'judgment':1409,1465 'kept':991 'key':1129 'languag':386,600 'larg':423,530 'last':752,1510 'late':1232 'launch':293,443,653,779 'level':126,961 'like':1445 'line':351 'lint':35,1239,1247 'linter':1077,1176 'list':98,108,169,178,201,280,287,318,424,458,623,628,689 'live':93,131,150,186 'log':1496 'look':1158 'loss':1376 'm':232 'mani':902 'manual':1186 'markdown':1265,1281,1311 'match':984,1485 'may':818,1421 'mcp':603 'md':202 'mechan':32,660,1060,1114,1143,1155,1167,1318,1337 'memori':11,21,48,55,68,183,184,196,235,252,259,270,278,286,297,629,635,664,693,703,714,727,737,763,806,815,835,840,977,987,993,1004,1006,1009,1044,1112,1123,1271,1278,1284,1303,1307,1317,1326,1348,1378,1383,1415,1417,1425 'memory.md':205,677,691,697,1295,1400,1402,1482 'mention':860 'merg':888,1413,1489,1492 'messag':498,520 'mid':402 'mid-batch':401 'miss':681,1005,1205,1397 'mix':389 'model':466,471,646,656,782 'modif':1519 'modifi':750 'move':407 'multi':1029 'multi-step':1028 'multipl':587,953,1174 'n':229,1273,1276,1300,1312,1322 'name':134,156,518,1101,1107,1313 'need':217,369,409,1480 'new':23,64,1538 'nil':1229 'nonexist':1406 'note':963,1500 'one':313,449 'originsess':850 'originsessionexist':851 'originsessionid':705 'orphan':1292 'outlin':1128 'output':336,479,668,766,789,1252 'overlap':805,1414,1428 'overrid':824 'p':237 'panic':1230 'parallel':300,440,447 'parent':117,121,137,142,412 'pars':360,397 'partial':1427 'past':7,44,315,790 'path':162,718,722,859,1523 'pattern':29,53,897,905,966,983,1161,1267,1539 'paus':1424 'per':450,468,607,643 'perform':659 'person':929,936 'phase':71,288,353,878,1020,1346,1354,1431 'pipe':532 'pipelin':642 'plan':1258,1350,1439,1545 'point':626,679,1404 'pre':1085,1195 'pre-commit':1084,1194 'prefix':342,769 'present':1254,1410,1436,1540 'prevent':1068 'previous':1528 'prior':1534 'proceed':227 'process':441 'produc':1356 'project':100,154,171,193,233,238,243,254,262,265,281,744,776,800,803,808,817,822,843,848,876,944,954,1018,1046,1283,1420,1515,1522 'project-a':242 'project-b':253 'project-c':264 'project-inact':875,1017 'project-specif':821,1045 'promot':813,957,1055 'prompt':303,307 'prone':1093 'propos':22,1126,1332,1368,1491 'proto/api':1241 'provid':1100 'python':496 'quot':577,619,1119,1270,1328 'r':273 'rank':61,882,909,1008,1262,1266 'raw':492 're':330 're-read':329 'read':331,491 'reason':795 'receiv':455 'recommend':62,1023,1024,1099,1153,1310 'recur':992 'redirect':559 'refer':849,918,976 'referenc':715 'referencedpath':857 'referencedpathsexist':863 'remov':1291,1309,1373,1401,1416,1454,1458 'repair':1395 'repeat':14,583,621,999,1198,1213 'report':222,1361 'requir':482,797,1408 'retri':428 'return':344,606,760 'reusabl':1027 'revert':576 'review':6,43,827,1245,1304,1412,1548 'rework':598 'rewrit':1481 'risk':1371 'role':502,505,524 'rout':472,647 'rule':26,66,216,272,274,731,742,812,923,937,950,1035,1059,1078,1111,1177,1240,1251,1290,1316,1389,1430,1553 'run':1214,1352,1360,1529 'safe':1372,1453,1457 'scan':191,212,924,931,938 'schema':88,321,339,462,474,541,765,837 'schema-driven':473 'scope':416,1504 'section':1130,1261,1334 'see':767 'select':501,513 'sentenc':314 'separ':204 'server':604 'session':9,46,148,182,283,708,748,899,903,1116,1268,1301,1323,1330 'sever':1012 'shape':1039 'show':1490 'signal':562,1157 'skill':24,65,921,930,1026,1110,1148,1149,1154,1315,1552 'skill-audit-history' 'skill.md':333 'skills/rules':972 'skills/rules/memory':1137 'skip':405,1469 'slow':592 'sonnet':778,783 'sort':526 'sourc':74,80,609 'source-paultyng' 'specif':716,823,1047,1139,1338 'specifi':415 'split':432 'stage':633,641,648,673,758,772,786,793 'stale':20,54,700,867,874,1016,1277,1287 'state':309,349 'static':36,1079,1179 'staticcheck':1236 'status':350,363,771,1282 'step':1030,1218 'still':711 'stop':564 'stricter':1233 'structur':650,675,788,870,1013,1394 'structural-issu':869 'style':1189 'subag':119,129,295,298,302,306,327,375,431,448,454,470,630,645,655,781,885 'subagent-model-rout':469,644 'subagent-prompt-contract':305 'subdirectori':133,197 'subset':426 'substanti':738 'summari':552 'surfac':51,1537 'synthes':58,1022 'synthesi':481,777 'tabl':1264,1280 'taken':1499 'technologies/tools':599 'test':34,724,1088,1199,1206,1210 'three':1260 'time':588,1175,1520 'tool':38,509,515,517,627,1062,1339 'tooling/config':1140 'top':125 'top-level':124 'topic':614 'topic-agent-skills' 'topic-ai-tools' 'topic-claude-code' 'topic-cursor' 'topic-dotfiles' 'topic/title':548 'tostr':536 'transcript':75,76,92,114,120,122,130,143,149,230,241,246,250,257,268,294,387,394,430,433,539,544,608,889,1121,1163 'true':852,855 'true/false':864 'truncat':529 'two':79,632,640 'two-stag':631,639 'type':514,586,845,1025,1109,1226,1314 'undo':575 'uniq':527 'updat':1053 'url':159 'url-encod':158 'usag':28 'use':4,82,465,484,495,510,516,605,637,1144 'user':497,506,553,558,579,594,846,960,1442,1503,1526,1547 'user-level':959 'uuid':139,613,1331 'verb':1104 'verb-first':1103 'verif':1217 'verifi':706 'wait':570 'week':1512 'without':359,1072 'word':551,582,617 'work':1043 'workflow':1031 'workspac':101,945 'would':1169,1443 'wouldn':395 'write':1495 'wrong':568 'x':240 'x1':245,263 'x2':261 'y':249 'y1':256 'y2':267 'z':234,251 'z1':258","prices":[{"id":"443860e6-d246-4bf9-95e2-3092cb215024","listingId":"cfa20a9f-c361-47d0-8115-a7ec6e8fa8bb","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"paultyng","category":"skill-issue","install_from":"skills.sh"},"createdAt":"2026-05-18T13:21:24.539Z"}],"sources":[{"listingId":"cfa20a9f-c361-47d0-8115-a7ec6e8fa8bb","source":"github","sourceId":"paultyng/skill-issue/audit-history","sourceUrl":"https://github.com/paultyng/skill-issue/tree/main/skills/audit-history","isPrimary":false,"firstSeenAt":"2026-05-18T13:21:24.539Z","lastSeenAt":"2026-05-18T19:08:59.998Z"}],"details":{"listingId":"cfa20a9f-c361-47d0-8115-a7ec6e8fa8bb","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"paultyng","slug":"audit-history","github":{"repo":"paultyng/skill-issue","stars":8,"topics":["agent-skills","ai-tools","claude-code","cursor","dotfiles"],"license":"mit","html_url":"https://github.com/paultyng/skill-issue","pushed_at":"2026-05-18T18:26:54Z","description":"Personal Claude Code / Cursor agent skills, rules, and config","skill_md_sha":"69e4c5025f2ae8116703e3b68ee1187317bb31bd","skill_md_path":"skills/audit-history/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/paultyng/skill-issue/tree/main/skills/audit-history"},"layout":"multi","source":"github","category":"skill-issue","frontmatter":{"name":"audit-history","description":"Use when reviewing past agent sessions, auditing memory health, identifying repeated corrections or friction, cleaning up stale memories, proposing new skills and rules from usage patterns, or identifying mechanical improvements (testing, linting, static analysis, tooling) that could improve outcomes."},"skills_sh_url":"https://skills.sh/paultyng/skill-issue/audit-history"},"updatedAt":"2026-05-18T19:08:59.998Z"}}