[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M70G412X3VRKXSJD6Y6SHKP0":3,"skill-same:01M70G412X3VRKXSJD6Y6SHKP0":74},{"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":23,"publishedAt":44,"linkOnly":45,"markdownContent":46,"markdownBody":47,"frontMatter":48,"refName":52,"commitSha":53,"skillDirectory":54,"forksCount":55,"repositoryHtmlUrl":56,"repositoryHomepageUrl":6,"ownerHtmlUrl":57,"ownerBlogUrl":6,"ownerDescription":58,"updatedAt":59,"install":60,"resources":73},"01M70G412X3VRKXSJD6Y6SHKP0","growth-log",null,"Write growth log entries that extract reusable patterns from completed work — root cause, transferable rule, and a recognizable signal — instead of diary-style event narration, with a 4-8 sentence template and merge-duplicates discipline. Use when capturing what was learned after a complex task, debugging session, failure, or rollback, when reviewing progress over a period, or when a delivery gate asks what was learned.","mdnaimul22\u002Fhuman-skills","mdnaimul22","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F64520358?v=4","01M70FH95MH2H796Q01TYSFZ03","Naimul","01M70FH96798CQR4YHA13F17GA",3,"MIT","https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Faffaan-m_ECC\u002Fgrowth-log\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43],"growth log","growth","log","narration","when","delivery gate","event","progress","learned","diary","delivery","patterns","merge","duplicates","discipline","session","write","work","template","debugging","2026-11-10 10:12:30",false,"---\nname: growth-log\ndescription: Write growth log entries that extract reusable patterns from completed work — root cause, transferable rule, and a recognizable signal — instead of diary-style event narration, with a 4-8 sentence template and merge-duplicates discipline. Use when capturing what was learned after a complex task, debugging session, failure, or rollback, when reviewing progress over a period, or when a delivery gate asks what was learned.\nmetadata:\n  version: 1.1.0\n  origin: ECC\n---\n\n# Growth Log Skill\n\n> **The problem:** Most people write \"fixed a bug in X\" as a learning log. That's a diary entry, not a learning artifact. A real growth log extracts the *pattern* so you recognize it next time.\n>\n> **This skill teaches:** How to write learning entries that compound across sessions. Works with any note-taking system — Markdown files, Notion, Obsidian, plain text. Templates are generic; adapt to your setup.\n\n## When to Activate\n\n- After completing a complex task (multi-file, new feature, architecture change)\n- After a failure, mistake, or \"that was harder than expected\" moment\n- When you want to review what you've learned over a period\n\n**When NOT to activate:** Trivial changes (typo fixes, single-line tweaks, config value changes with no debugging). The threshold: *did this task involve debugging, redoing, rollback, or a non-obvious decision?* If yes → write an entry. If no → skip.\n\n## The Three Rules\n\n### Rule 1: Failures > Achievements\n\nA failure is nutritionally denser than a success. One bug that took 2 hours to find teaches more than 3 features that worked first try.\n\n**Bad:** \"Successfully implemented the login flow.\"\n**Good (web dev):** \"Login flow: session token wasn't persisting because the cookie `SameSite` defaulted to `Lax` in Chrome 128+. Pattern: always explicitly set `SameSite=None; Secure` when cross-origin. Signal to recognize: auth breaks after browser upgrade or when crossing origin boundaries.\"\n**Good (data pipeline):** \"CSV import failed silently on empty rows because `pandas.read_csv(dropna=False)` keeps zero-width rows that `len()` counts as valid. Pattern: always `df.dropna(how='all', inplace=True)` before row-count validation.\"\n\n### Rule 2: The Bole Principle (伯乐原则)\n\nBefore writing a new entry, ask: *\"Is this fundamentally the same as something I already recorded?\"*\n\nSame root cause, different symptom → **merge**, don't duplicate. New root cause → new entry.\n\n**How to check:** Search existing entries for keywords from your root cause before writing. If you find a match, add your new symptom as an additional example under the existing entry rather than creating a duplicate.\n\n**Example:** \"Forgot to update the output index after creating a file\" and \"Forgot to update skill ratings after a task\" — same root cause (no automatic capture trigger). Merge into one entry about \"post-task capture gaps.\"\n\n### Rule 3: Must Be Transferable\n\nEvery entry must answer: *\"Next time I face a similar situation, what do I do differently?\"*\n\nIf you can't write that sentence, you haven't extracted the pattern yet.\n\n**How to extract a pattern from a concrete event:**\n1. State what happened in one sentence\n2. Ask \"why?\" iteratively until you reach root cause (usually 3-5 whys)\n3. Generalize: \"What class of problem is this?\" (not \"Chrome 128 bug\" but \"browser default change breaking existing behavior\")\n4. Formulate as: \"Next time I see [signal], I will [action].\"\n5. Name the signal: what specific observable tells you this pattern is active?\n\n## Entry Template\n\n**Scope:** One entry per distinct root cause. Typical length: 4-8 sentences. If it takes >2 minutes to write, you're narrating events. If \u003C30 seconds, you haven't gone deep enough.\n\n```markdown\n## [Title: the pattern, not the event]\n\n### Context\n- What was I trying to do?\n- What went wrong \u002F what worked surprisingly well?\n\n### Root Cause \u002F Core Insight\n- The underlying mechanism, not just the symptom\n\n### The Pattern (transferable)\n- Next time [similar situation], I will [specific action].\n- Signal to recognize: [what observable tells me this pattern is active?]\n\n### Related\n- [entry-name](..\u002Fpath\u002Fto\u002Frelated-entry.md)\n```\n\n## Entry Types\n\nAll four types use the template above. The type determines which sections carry the most weight:\n\n| Type | When to Use | Emphasis | Example Title |\n|------|------------|----------|---------------|\n| **Failure** | Something broke, needed debugging, or required rework | Root Cause | \"Config inheritance ≠ behavior inheritance across sessions\" |\n| **Methodology** | A repeatable process emerged from the work | Context \u002F Pattern | \"PPT → open-book exam study guide: three-layer structure\" |\n| **Pattern Discovery** | A reusable insight about tools, systems, or thinking | Pattern section | \"PR description template: describe the gap, not the feature\" |\n| **Capability Change** | A measurable skill improvement | Context (before vs after) | \"Git: from clone\u002Fpush to independent PR with 12 commits\" |\n\n## Quality Checklist\n\nBefore finalizing a growth log entry:\n\n- [ ] Does the title name the *pattern*, not the event?\n- [ ] Is there a \"Next time I will...\" sentence?\n- [ ] Is the \"Signal to recognize\" specific enough to trigger the pattern next time?\n- [ ] Did I search existing entries for duplicates before writing? (Bole Principle)\n- [ ] Is the root cause distinguished from the symptom?\n- [ ] Are related memories cross-linked?\n- [ ] Is the entry 4-8 sentences? Shorter = too shallow; longer = narrating events.\n\n## Anti-Patterns\n\n- Avoid: \"Fixed bug in payment module\" (event, not pattern)\n- Avoid: Copying the git commit message verbatim (commits describe what changed; logs extract why it matters)\n- Avoid: Writing an entry for every commit (only when a pattern emerges)\n- Avoid: Skipping the transferable sentence (without it, it's just a diary — this is non-negotiable)\n- Avoid: Duplicating the same pattern under different titles (violates Bole Principle — search before writing)\n\n## Storage\n\nStore entries wherever you keep notes. Common patterns:\n- Markdown files in a `growth-log\u002F` directory (one file per day: `YYYY-MM-DD.md`)\n- A dedicated section in Notion, Obsidian, or your note-taking app\n- Plain text files with a consistent naming convention\n\nPick one convention and stick to it. Searchability matters more than format.\n\n## If You Use Delivery Gate\n\nThe `delivery-gate` Stop hook checks that learning files were modified today via filesystem timestamps. This skill teaches *what to write* — so the file that delivery-gate checks actually contains useful patterns, not empty timestamps.\n\n```\nTask completes → delivery-gate checks: was the learning file touched today?\n  → Stale (no file modified): block — \"what did you learn?\"\n  → Fresh (file touched): pass — this skill ensures the content is useful\n```\n\nHaving enforcement without methodology → empty entries. Having methodology without enforcement → forgotten captures. Each is independently useful; together they close the loop.\n","# Growth Log Skill\n\n> **The problem:** Most people write \"fixed a bug in X\" as a learning log. That's a diary entry, not a learning artifact. A real growth log extracts the *pattern* so you recognize it next time.\n>\n> **This skill teaches:** How to write learning entries that compound across sessions. Works with any note-taking system — Markdown files, Notion, Obsidian, plain text. Templates are generic; adapt to your setup.\n\n## When to Activate\n\n- After completing a complex task (multi-file, new feature, architecture change)\n- After a failure, mistake, or \"that was harder than expected\" moment\n- When you want to review what you've learned over a period\n\n**When NOT to activate:** Trivial changes (typo fixes, single-line tweaks, config value changes with no debugging). The threshold: *did this task involve debugging, redoing, rollback, or a non-obvious decision?* If yes → write an entry. If no → skip.\n\n## The Three Rules\n\n### Rule 1: Failures > Achievements\n\nA failure is nutritionally denser than a success. One bug that took 2 hours to find teaches more than 3 features that worked first try.\n\n**Bad:** \"Successfully implemented the login flow.\"\n**Good (web dev):** \"Login flow: session token wasn't persisting because the cookie `SameSite` defaulted to `Lax` in Chrome 128+. Pattern: always explicitly set `SameSite=None; Secure` when cross-origin. Signal to recognize: auth breaks after browser upgrade or when crossing origin boundaries.\"\n**Good (data pipeline):** \"CSV import failed silently on empty rows because `pandas.read_csv(dropna=False)` keeps zero-width rows that `len()` counts as valid. Pattern: always `df.dropna(how='all', inplace=True)` before row-count validation.\"\n\n### Rule 2: The Bole Principle (伯乐原则)\n\nBefore writing a new entry, ask: *\"Is this fundamentally the same as something I already recorded?\"*\n\nSame root cause, different symptom → **merge**, don't duplicate. New root cause → new entry.\n\n**How to check:** Search existing entries for keywords from your root cause before writing. If you find a match, add your new symptom as an additional example under the existing entry rather than creating a duplicate.\n\n**Example:** \"Forgot to update the output index after creating a file\" and \"Forgot to update skill ratings after a task\" — same root cause (no automatic capture trigger). Merge into one entry about \"post-task capture gaps.\"\n\n### Rule 3: Must Be Transferable\n\nEvery entry must answer: *\"Next time I face a similar situation, what do I do differently?\"*\n\nIf you can't write that sentence, you haven't extracted the pattern yet.\n\n**How to extract a pattern from a concrete event:**\n1. State what happened in one sentence\n2. Ask \"why?\" iteratively until you reach root cause (usually 3-5 whys)\n3. Generalize: \"What class of problem is this?\" (not \"Chrome 128 bug\" but \"browser default change breaking existing behavior\")\n4. Formulate as: \"Next time I see [signal], I will [action].\"\n5. Name the signal: what specific observable tells you this pattern is active?\n\n## Entry Template\n\n**Scope:** One entry per distinct root cause. Typical length: 4-8 sentences. If it takes >2 minutes to write, you're narrating events. If \u003C30 seconds, you haven't gone deep enough.\n\n```markdown\n## [Title: the pattern, not the event]\n\n### Context\n- What was I trying to do?\n- What went wrong \u002F what worked surprisingly well?\n\n### Root Cause \u002F Core Insight\n- The underlying mechanism, not just the symptom\n\n### The Pattern (transferable)\n- Next time [similar situation], I will [specific action].\n- Signal to recognize: [what observable tells me this pattern is active?]\n\n### Related\n- [entry-name](..\u002Fpath\u002Fto\u002Frelated-entry.md)\n```\n\n## Entry Types\n\nAll four types use the template above. The type determines which sections carry the most weight:\n\n| Type | When to Use | Emphasis | Example Title |\n|------|------------|----------|---------------|\n| **Failure** | Something broke, needed debugging, or required rework | Root Cause | \"Config inheritance ≠ behavior inheritance across sessions\" |\n| **Methodology** | A repeatable process emerged from the work | Context \u002F Pattern | \"PPT → open-book exam study guide: three-layer structure\" |\n| **Pattern Discovery** | A reusable insight about tools, systems, or thinking | Pattern section | \"PR description template: describe the gap, not the feature\" |\n| **Capability Change** | A measurable skill improvement | Context (before vs after) | \"Git: from clone\u002Fpush to independent PR with 12 commits\" |\n\n## Quality Checklist\n\nBefore finalizing a growth log entry:\n\n- [ ] Does the title name the *pattern*, not the event?\n- [ ] Is there a \"Next time I will...\" sentence?\n- [ ] Is the \"Signal to recognize\" specific enough to trigger the pattern next time?\n- [ ] Did I search existing entries for duplicates before writing? (Bole Principle)\n- [ ] Is the root cause distinguished from the symptom?\n- [ ] Are related memories cross-linked?\n- [ ] Is the entry 4-8 sentences? Shorter = too shallow; longer = narrating events.\n\n## Anti-Patterns\n\n- Avoid: \"Fixed bug in payment module\" (event, not pattern)\n- Avoid: Copying the git commit message verbatim (commits describe what changed; logs extract why it matters)\n- Avoid: Writing an entry for every commit (only when a pattern emerges)\n- Avoid: Skipping the transferable sentence (without it, it's just a diary — this is non-negotiable)\n- Avoid: Duplicating the same pattern under different titles (violates Bole Principle — search before writing)\n\n## Storage\n\nStore entries wherever you keep notes. Common patterns:\n- Markdown files in a `growth-log\u002F` directory (one file per day: `YYYY-MM-DD.md`)\n- A dedicated section in Notion, Obsidian, or your note-taking app\n- Plain text files with a consistent naming convention\n\nPick one convention and stick to it. Searchability matters more than format.\n\n## If You Use Delivery Gate\n\nThe `delivery-gate` Stop hook checks that learning files were modified today via filesystem timestamps. This skill teaches *what to write* — so the file that delivery-gate checks actually contains useful patterns, not empty timestamps.\n\n```\nTask completes → delivery-gate checks: was the learning file touched today?\n  → Stale (no file modified): block — \"what did you learn?\"\n  → Fresh (file touched): pass — this skill ensures the content is useful\n```\n\nHaving enforcement without methodology → empty entries. Having methodology without enforcement → forgotten captures. Each is independently useful; together they close the loop.\n",{"name":5,"metadata":49,"description":7},{"origin":50,"version":51},"ECC","1.1.0","main","74715deacdc69119d739f38916f8ee4f0f979ebf","skills\u002Fstorage\u002Faffaan-m_ECC\u002Fgrowth-log",0,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills","https:\u002F\u002Fgithub.com\u002Fmdnaimul22","AI Agents Workflows Automation | Specializing in Python, FastAPI, MCP Agents & Custom ERP.","2026-11-11 21:16:57",{"source":8,"skillName":5,"commands":61,"prompt":71,"zipAvailable":72},[62,65,68],{"tool":63,"command":64},"npx","npx skills add mdnaimul22\u002Fhuman-skills --skill growth-log",{"tool":66,"command":67},"bunx","bunx skills add mdnaimul22\u002Fhuman-skills --skill growth-log",{"tool":69,"command":70},"pnpm","pnpm dlx skills add mdnaimul22\u002Fhuman-skills --skill growth-log","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Faffaan-m_ECC\u002Fgrowth-log\u002FSKILL.md",true,[],[75,83,109,131,150,165],{"skillNo":76,"name":77,"nameZh":6,"description":78,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":79,"categories":80,"keywords":81,"publishedAt":82},"01M72JT3YP1SQHD0MANGDXQ4RT","higgsfield-websites","Build, edit, and deploy full-stack websites, apps and games via the Higgsfield CLI (`higgsfield website …`). Each is a React 19 + TanStack Start SSR app in one Cloudflare Worker (D1\u002FR2\u002FKV\u002FDO\u002FContainers). THREE product types, picked via `--type` on create: `website` (standalone, no Higgsfield integration — references\u002Fwebsite-flow.md), `app` (Sign in with Higgsfield + fnf SDK, Quanta — references\u002Fapp-flow.md), `game` (realtime multiplayer rooms — references\u002Fgame-flow.md). Routes to the right flow; each carries its own rules and deploy\u002Fpublish gates.\nUse when: \"build me a website\", \"make a landing page\", \"create a web app\", \"build a SaaS dashboard \u002F portfolio\", \"make me a game\", \"deploy this site\", \"publish\". Also owns GAME ART: \"make a spritesheet\", \"tileable texture\", \"animate a 3D character\", game music\u002FSFX — see the game-* references.\nNOT for: single image\u002Fvideo\u002Faudio generation (higgsfield-generate), product photos (higgsfield-product-photoshoot), marketplace cards (higgsfield-marketplace-cards).","https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fhiggsfield-ai_skills\u002Fhiggsfield-websites\u002FSKILL.md",[],[],"2026-11-10 22:39:42",{"skillNo":84,"name":85,"nameZh":6,"description":86,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":87,"categories":88,"keywords":101,"publishedAt":44},"01M70JPK8HAXXA85P7Q8NKZZYG","writing-skills","Use when creating new skills, editing existing skills, or verifying skills work before deployment","https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fobra_superpowers\u002Fwriting-skills\u002FSKILL.md",[89,92,97,98],{"categoryNo":90,"categoryName":91,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000018","写作与文案",{"categoryNo":93,"categoryName":94,"taxonomyType":95,"taxonomyTypeDesc":96},"01JBSEEDCAT000000000000036","内容创作者","PROFESSION","适用职业",{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":99,"categoryName":100,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量",[102,103,104,105,106,107,108,28,41],"writing","writing skills","editing","deployment","use","Existing","new",{"skillNo":110,"name":111,"nameZh":6,"description":112,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":113,"categories":114,"keywords":120,"publishedAt":44},"01M70JP4PHBH1CQVVDWZ94W159","writing-plans","Use when you have a spec or requirements for a multi-step task, before touching code","https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fobra_superpowers\u002Fwriting-plans\u002FSKILL.md",[115,116,117],{"categoryNo":90,"categoryName":91,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":93,"categoryName":94,"taxonomyType":95,"taxonomyTypeDesc":96},{"categoryNo":118,"categoryName":119,"taxonomyType":95,"taxonomyTypeDesc":96},"01JBSEEDCAT000000000000030","开发工程师",[102,121,122,123,28,124,125,106,126,127,128,129,130],"writing plans","plans","you","code","for","requirements","task","multi","spec","multi-step task",{"skillNo":132,"name":133,"nameZh":6,"description":134,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":135,"categories":136,"keywords":137,"publishedAt":44},"01M70JNTYVGXFZT8PASZ844TH8","verification-before-completion","Use when about to claim work is complete, fixed, or passing, before committing or creating PRs - requires running verification commands and confirming output before making any success claims; evidence before assertions always","https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fobra_superpowers\u002Fverification-before-completion\u002FSKILL.md",[],[138,139,140,141,142,143,106,144,145,146,28,147,41,148,149],"verification","verification before completion","complete","about","output","assertions","prs","evidence","claim","claims","commands","running",{"skillNo":151,"name":152,"nameZh":6,"description":153,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":154,"categories":155,"keywords":157,"publishedAt":44},"01M70JNGVSQDESWN0Q5BPJ875V","using-superpowers","Use when starting any conversation - establishes how to find and use skills, requiring skill invocation before ANY response including clarifying questions","https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fobra_superpowers\u002Fusing-superpowers\u002FSKILL.md",[156],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[158,159,160,161,106,28,162,163,164],"using superpowers","superpowers","conversation","how to","how","find","questions",{"skillNo":166,"name":167,"nameZh":6,"description":168,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":169,"categories":170,"keywords":171,"publishedAt":44},"01M70JN57CE588NPYPYTWH1DWG","using-git-worktrees","Use when starting feature work that needs isolation from current workspace or before executing implementation plans - ensures an isolated workspace exists via native tools or git worktree fallback","https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fobra_superpowers\u002Fusing-git-worktrees\u002FSKILL.md",[],[172,173,174,175,176,177,28,41,178,179,180,181,182,183,184,122,106,185,186],"using git worktrees","Using git","git","worktrees","git worktrees","implementation","git worktree","worktree","native","Tools","isolation","fallback","feature","via","workspace"]