[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6C4AXJ96VB0M4YHFWNNAVRQ":3,"skill-same:01M6C4AXJ96VB0M4YHFWNNAVRQ":70},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":41,"linkOnly":42,"markdownContent":43,"markdownBody":44,"frontMatter":45,"refName":47,"commitSha":48,"skillDirectory":49,"forksCount":50,"repositoryHtmlUrl":51,"repositoryHomepageUrl":52,"ownerHtmlUrl":53,"ownerBlogUrl":12,"ownerDescription":54,"updatedAt":55,"install":56,"resources":69},"01M6C4AXJ96VB0M4YHFWNNAVRQ","cast-lessons",null,"Harvest the corrections humans made across the team's sessions in a window, cluster them, and propose the guidance that would have prevented each. Reads every session where someone said stop, no, not like that, or redirected an agent, and turns the pattern into instruction lines, decisions, or a doc. Use for a weekly retro, when the same mistake keeps recurring, or when asked what the team keeps correcting.","codecast-sh\u002Fcodecast","codecast-sh","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F248798196?v=4","01M6C4A0X9D10K5VATDQRDCE36","codecast.sh","01M6C4A11M3RRJVEJQDCSZZTNR",47,"MIT","https:\u002F\u002Fgithub.com\u002Fcodecast-sh\u002Fcodecast\u002Fblob\u002Fmain\u002Fpackages\u002Fcli\u002Fskills\u002Fcast-lessons\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40],"lessons","cast lessons","cast","what the","when","window","weekly","for","cluster","harvest","across","pattern","sessions","guidance","use","session","recurring","write","decisions","team","retro","doc","2026-11-10 10:12:30",false,"---\nname: cast-lessons\ndescription: Harvest the corrections humans made across the team's sessions in a window, cluster them, and propose the guidance that would have prevented each. Reads every session where someone said stop, no, not like that, or redirected an agent, and turns the pattern into instruction lines, decisions, or a doc. Use for a weekly retro, when the same mistake keeps recurring, or when asked what the team keeps correcting.\nargument-hint: \"[window, e.g. 7d] [write]\"\n---\n\nEvery session captures its own corrections at best. Nobody reads the\ncorrections across the team, so the same one is made in ten threads.\n\nLessons belong to a project (docs\u002Farchitecture\u002Fline-profile.md LP5). Run from\nthe root of the repository whose lessons you are mining, and read its profile\nfirst with `cast flow profile --json`: its `project` is where the signals go,\nand its `principles` are the project's own files, which new principles are\nwritten into. The clusters are matched against those files and the shared set\ntogether; `cast goals --json` returns both as one text (`principles`). A\nrepository without a profile is mined the same way against the shared set\nalone, and its signals carry no project.\n\n## Find the corrections\n\n```bash\ncast search \"don't|do not|never|stop|wrong|not like that|instead|revert\" -s \u003Cwindow> -n 50\ncast search \"why did you|I said|again\" -s \u003Cwindow> -n 30\n```\n\nThe first line's words are `REDIRECT_WORDS` in `packages\u002Fshared\u002Fcontracts\u002FredirectWords.ts`, the same words the session insight keeps when it samples a long session.\n\nWhen mining one project, keep the search to its sessions (add\n`repo:\u003Cname>` to the query). For each hit, `cast read \u003Cid> \u003Cline>` with a few messages of context to see\nwhat the agent did and what the human wanted instead. Keep the ones where a\nhuman corrected an agent; drop agent to agent messages and corrections that\nwere about a one time misunderstanding.\n\n## Cluster\n\nGroup by the rule that would have prevented them, not by the words used.\nThree sessions told to stop rewriting files they did not own are one rule.\nFor each cluster: the rule in one sentence, how many sessions hit it, the\nshort ids, and whether the repository's instructions already say it (read\nthem; a rule that is written and still ignored is a different problem than\none that is missing).\n\nThen match each cluster against the shared set and the project's principles files. A cluster is that principle when the principle, as written, would have\nprevented every correction in it; one that only shares a topic is not. A\nmatch is a repeat of a rule the team already holds, and its count belongs to\nthat principle. A cluster with no match, seen in two or more sessions, is a\ncandidate principle: write it as the file writes them (the principle, why it\nmatters, the evidence) under the next free id in its area, in that file's own\nid scheme, so a project's ids keep its prefix.\n\n## Propose\n\nFor each cluster, one of:\n\n- A line for the project's agent instructions, written as a principle, with\n  the exact place it belongs.\n- A decision: `cast decisions add`, when the correction was really a choice\n  the team has now made.\n- Nothing, with the reason: the rule is present and the fix is elsewhere\n  (a hook, a tool, a prompt), named.\n\n## File each cluster as a signal\n\nA cluster that needs a change goes through the signal door, so the flow can\ntake it up as a cause, and the same rule seen next week counts toward that\ncause instead of opening another:\n\n```bash\ncast signal add --source lesson --kind cohesion --project \"\u003Cthe profile's project>\" \\\n  --fingerprint lesson:\u003Crule-slug> \\\n  --title \"\u003Cthe rule, one line>\" \\\n  --subject \u003Cthe instruction file or area it concerns> \\\n  --detail - \u003C\u003C'BODY'\n\u003Chow many sessions hit it, their short ids, and the proposed line or decision>\nBODY\n```\n\nThe fingerprint names the rule, not this week's wording, so a rerun over a\nlater window lands on the same cause. A cluster that matches a principle\nuses the principle's id (`lesson:PR-code-4`), so every repeat counts toward\nthat principle's cause, and the detail says what the principle failed to\nprevent this time: missing from the instruction the agent read, or present\nand ignored. A candidate principle uses its own slug and carries the\nproposed text in the detail. A signal only suggests a cause, so file it in\nboth modes. File from the repository's root, so the profile's workspace\napplies along with its project.\n\nReport as a table ordered by frequency, with the signal and the cause each\ncluster reached. With `write`, apply the instruction\nlines, record the decisions, add each candidate principle to\nthe project's principles file and update the evidence line of each matched one, then\nsay what went where. Without it, the\ntable is the deliverable and the human chooses.\n","Every session captures its own corrections at best. Nobody reads the\ncorrections across the team, so the same one is made in ten threads.\n\nLessons belong to a project (docs\u002Farchitecture\u002Fline-profile.md LP5). Run from\nthe root of the repository whose lessons you are mining, and read its profile\nfirst with `cast flow profile --json`: its `project` is where the signals go,\nand its `principles` are the project's own files, which new principles are\nwritten into. The clusters are matched against those files and the shared set\ntogether; `cast goals --json` returns both as one text (`principles`). A\nrepository without a profile is mined the same way against the shared set\nalone, and its signals carry no project.\n\n## Find the corrections\n\n```bash\ncast search \"don't|do not|never|stop|wrong|not like that|instead|revert\" -s \u003Cwindow> -n 50\ncast search \"why did you|I said|again\" -s \u003Cwindow> -n 30\n```\n\nThe first line's words are `REDIRECT_WORDS` in `packages\u002Fshared\u002Fcontracts\u002FredirectWords.ts`, the same words the session insight keeps when it samples a long session.\n\nWhen mining one project, keep the search to its sessions (add\n`repo:\u003Cname>` to the query). For each hit, `cast read \u003Cid> \u003Cline>` with a few messages of context to see\nwhat the agent did and what the human wanted instead. Keep the ones where a\nhuman corrected an agent; drop agent to agent messages and corrections that\nwere about a one time misunderstanding.\n\n## Cluster\n\nGroup by the rule that would have prevented them, not by the words used.\nThree sessions told to stop rewriting files they did not own are one rule.\nFor each cluster: the rule in one sentence, how many sessions hit it, the\nshort ids, and whether the repository's instructions already say it (read\nthem; a rule that is written and still ignored is a different problem than\none that is missing).\n\nThen match each cluster against the shared set and the project's principles files. A cluster is that principle when the principle, as written, would have\nprevented every correction in it; one that only shares a topic is not. A\nmatch is a repeat of a rule the team already holds, and its count belongs to\nthat principle. A cluster with no match, seen in two or more sessions, is a\ncandidate principle: write it as the file writes them (the principle, why it\nmatters, the evidence) under the next free id in its area, in that file's own\nid scheme, so a project's ids keep its prefix.\n\n## Propose\n\nFor each cluster, one of:\n\n- A line for the project's agent instructions, written as a principle, with\n  the exact place it belongs.\n- A decision: `cast decisions add`, when the correction was really a choice\n  the team has now made.\n- Nothing, with the reason: the rule is present and the fix is elsewhere\n  (a hook, a tool, a prompt), named.\n\n## File each cluster as a signal\n\nA cluster that needs a change goes through the signal door, so the flow can\ntake it up as a cause, and the same rule seen next week counts toward that\ncause instead of opening another:\n\n```bash\ncast signal add --source lesson --kind cohesion --project \"\u003Cthe profile's project>\" \\\n  --fingerprint lesson:\u003Crule-slug> \\\n  --title \"\u003Cthe rule, one line>\" \\\n  --subject \u003Cthe instruction file or area it concerns> \\\n  --detail - \u003C\u003C'BODY'\n\u003Chow many sessions hit it, their short ids, and the proposed line or decision>\nBODY\n```\n\nThe fingerprint names the rule, not this week's wording, so a rerun over a\nlater window lands on the same cause. A cluster that matches a principle\nuses the principle's id (`lesson:PR-code-4`), so every repeat counts toward\nthat principle's cause, and the detail says what the principle failed to\nprevent this time: missing from the instruction the agent read, or present\nand ignored. A candidate principle uses its own slug and carries the\nproposed text in the detail. A signal only suggests a cause, so file it in\nboth modes. File from the repository's root, so the profile's workspace\napplies along with its project.\n\nReport as a table ordered by frequency, with the signal and the cause each\ncluster reached. With `write`, apply the instruction\nlines, record the decisions, add each candidate principle to\nthe project's principles file and update the evidence line of each matched one, then\nsay what went where. Without it, the\ntable is the deliverable and the human chooses.\n",{"name":5,"description":7,"argument-hint":46},"[window, e.g. 7d] [write]","main","4f2367cc51fa8b9b25afe4ec8ce91c2dd39208ae","packages\u002Fcli\u002Fskills\u002Fcast-lessons",6,"https:\u002F\u002Fgithub.com\u002Fcodecast-sh\u002Fcodecast","https:\u002F\u002Fcodecast.sh","https:\u002F\u002Fgithub.com\u002Fcodecast-sh","Making software a team sport","2026-11-13 03:25:04",{"source":8,"skillName":5,"commands":57,"prompt":67,"zipAvailable":68},[58,61,64],{"tool":59,"command":60},"npx","npx skills add codecast-sh\u002Fcodecast --skill cast-lessons",{"tool":62,"command":63},"bunx","bunx skills add codecast-sh\u002Fcodecast --skill cast-lessons",{"tool":65,"command":66},"pnpm","pnpm dlx skills add codecast-sh\u002Fcodecast --skill cast-lessons","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fcodecast-sh\u002Fcodecast\u002Fblob\u002Fmain\u002Fpackages\u002Fcli\u002Fskills\u002Fcast-lessons\u002FSKILL.md",true,[],[71,84,102,126,133,140],{"skillNo":72,"name":73,"nameZh":6,"description":74,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":75,"categories":76,"keywords":77,"publishedAt":41},"01M6C4DCX5TKER170ESW6C64V2","something-else-entirely","A skill whose frontmatter name disagrees with its directory name.","https:\u002F\u002Fgithub.com\u002Fcodecast-sh\u002Fcodecast\u002Fblob\u002Fmain\u002Fpackages\u002Fcli\u002Fsrc\u002Fcapabilities\u002F__fixtures__\u002Fmanifests\u002Fskills\u002Fwrong-name\u002FSKILL.md",[],[78,79,80,81,82,83],"something else","something else entirely","directory","name","with","frontmatter",{"skillNo":85,"name":86,"nameZh":6,"description":87,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":88,"categories":89,"keywords":95,"publishedAt":41},"01M6C4DAFDKVVPTBS94VNW32S1","unknown-field","Carries a field that is in neither the spec's six nor Claude Code's list.","https:\u002F\u002Fgithub.com\u002Fcodecast-sh\u002Fcodecast\u002Fblob\u002Fmain\u002Fpackages\u002Fcli\u002Fsrc\u002Fcapabilities\u002F__fixtures__\u002Fmanifests\u002Fskills\u002Funknown-field\u002FSKILL.md",[90],{"categoryNo":91,"categoryName":92,"taxonomyType":93,"taxonomyTypeDesc":94},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[96,97,98,99,100,101],"unknown","unknown field","spec","code","list","neither",{"skillNo":103,"name":104,"nameZh":6,"description":105,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":106,"categories":107,"keywords":116,"publishedAt":41},"01M6C4D7N185HPGR0YPVKVX4KY","remotion-best-practices","Best practices for Remotion - Video creation in React","https:\u002F\u002Fgithub.com\u002Fcodecast-sh\u002Fcodecast\u002Fblob\u002Fmain\u002Fpackages\u002Fcli\u002Fsrc\u002Fcapabilities\u002F__fixtures__\u002Fmanifests\u002Fskills\u002Fremotion-best-practices\u002FSKILL.md",[108,113],{"categoryNo":109,"categoryName":110,"taxonomyType":111,"taxonomyTypeDesc":112},"01JBSEEDCAT000000000000009","前端开发","SCENARIO","使用场景",{"categoryNo":114,"categoryName":115,"taxonomyType":111,"taxonomyTypeDesc":112},"01JBSEEDCAT000000000000016","图像与多媒体",[117,118,119,120,121,122,123,124,125,26],"best practices","remotion best practices","Remotion","react","Video","Animation","Composition","remotion, video, react, animation, composition","creation",{"skillNo":127,"name":128,"nameZh":6,"description":129,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":130,"categories":131,"keywords":132,"publishedAt":41},"01M6C4D530ZPR6CBNSJ4GE4M3Z","overlength","xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx","https:\u002F\u002Fgithub.com\u002Fcodecast-sh\u002Fcodecast\u002Fblob\u002Fmain\u002Fpackages\u002Fcli\u002Fsrc\u002Fcapabilities\u002F__fixtures__\u002Fmanifests\u002Fskills\u002Foverlength\u002FSKILL.md",[],[128],{"skillNo":134,"name":135,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":136,"categories":137,"keywords":138,"publishedAt":41},"01M6C4D2TM5QDSPN2JWR50WDNJ","no-frontmatter","https:\u002F\u002Fgithub.com\u002Fcodecast-sh\u002Fcodecast\u002Fblob\u002Fmain\u002Fpackages\u002Fcli\u002Fsrc\u002Fcapabilities\u002F__fixtures__\u002Fmanifests\u002Fskills\u002Fno-frontmatter\u002FSKILL.md",[],[139,83],"no frontmatter",{"skillNo":141,"name":142,"nameZh":6,"description":143,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":144,"categories":145,"keywords":153,"publishedAt":41},"01M6C4CZQCGATTA7K5SA6D18MD","improve","Survey any codebase as a senior advisor and produce prioritized, self-contained implementation plans for OTHER models\u002Fagents to execute. Strictly read-only on source code — never implements, fixes, or refactors anything itself. Use when asked to audit a codebase, find improvement opportunities (bugs, security, performance, test coverage, tech debt, migrations, DX), suggest features or where to take the project next (roadmap, product direction), or generate handoff plans for another agent to implement.","https:\u002F\u002Fgithub.com\u002Fcodecast-sh\u002Fcodecast\u002Fblob\u002Fmain\u002Fpackages\u002Fcli\u002Fsrc\u002Fcapabilities\u002F__fixtures__\u002Fmanifests\u002Fskills\u002Fimprove\u002FSKILL.md",[146,149,150],{"categoryNo":147,"categoryName":148,"taxonomyType":111,"taxonomyTypeDesc":112},"01JBSEEDCAT000000000000023","Skill与智能体开发",{"categoryNo":91,"categoryName":92,"taxonomyType":93,"taxonomyTypeDesc":94},{"categoryNo":151,"categoryName":152,"taxonomyType":93,"taxonomyTypeDesc":94},"01JBSEEDCAT000000000000031","产品经理",[142,23,33,154,155,156,99,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177],"implement","test","generate","product","produce","audit","find","read","coverage","execute","tech debt","senior","survey","never","only","roadmap","test coverage","advisor","next","self","project next","project","direction","performance"]