[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6NSXJVPZR8EFPS2DAYV9GXF":3,"skill-same:01M6NSXJVPZR8EFPS2DAYV9GXF":62},{"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":36,"linkOnly":37,"markdownContent":38,"markdownBody":39,"frontMatter":40,"refName":41,"commitSha":42,"skillDirectory":43,"forksCount":44,"repositoryHtmlUrl":45,"repositoryHomepageUrl":6,"ownerHtmlUrl":46,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":47,"install":48,"resources":61},"01M6NSXJVPZR8EFPS2DAYV9GXF","incremental-implementation",null,"Delivers changes incrementally. Use when implementing any feature or change that touches more than one file. Use when you're about to write a large amount of code at once, or when a task feels too big to land in one step.","mattonweb\u002Fai-assistant-foundry","mattonweb","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F2309734?v=4","01M6NQYCY846TKYN2ZCRS71WQ7","Matt Johnson","01M6NQYD2NPAQEFVD8TW9W0SVX",1,"MIT","https:\u002F\u002Fgithub.com\u002Fmattonweb\u002Fai-assistant-foundry\u002Fblob\u002Fmain\u002Fcode-general\u002Faddyosmani\u002Fincremental-implementation\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35],"incremental implementation","implementation","task","changes","implementing","at","more","re","you","about","feature","change","use","write","file","land","code","2026-11-10 10:12:30",false,"---\nname: incremental-implementation\ndescription: Delivers changes incrementally. Use when implementing any feature or change that touches more than one file. Use when you're about to write a large amount of code at once, or when a task feels too big to land in one step.\n---\n\n# Incremental Implementation\n\n## Overview\n\nBuild in thin vertical slices — implement one piece, test it, verify it, then expand. Avoid implementing an entire feature in one pass. Each increment should leave the system in a working, testable state. This is the execution discipline that makes large features manageable.\n\n## When to Use\n\n- Implementing any multi-file change\n- Building a new feature from a task breakdown\n- Refactoring existing code\n- Any time you're tempted to write more than ~100 lines before testing\n\n**When NOT to use:** Single-file, single-function changes where the scope is already minimal.\n\n## The Increment Cycle\n\n```\n┌──────────────────────────────────────┐\n│                                      │\n│   Implement ──→ Test ──→ Verify ──┐  │\n│       ▲                           │  │\n│       └───── Commit ◄─────────────┘  │\n│              │                       │\n│              ▼                       │\n│          Next slice                  │\n│                                      │\n└──────────────────────────────────────┘\n```\n\nFor each slice:\n\n1. **Implement** the smallest complete piece of functionality\n2. **Test** — run the test suite (or write a test if none exists)\n3. **Verify** — confirm the slice works as expected (tests pass, build succeeds, manual check)\n4. **Commit** -- save your progress with a descriptive message (see `git-workflow-and-versioning` for atomic commit guidance)\n5. **Move to the next slice** — carry forward, don't restart\n\n## Slicing Strategies\n\n### Vertical Slices (Preferred)\n\nBuild one complete path through the stack:\n\n```\nSlice 1: Create a task (DB + API + basic UI)\n    → Tests pass, user can create a task via the UI\n\nSlice 2: List tasks (query + API + UI)\n    → Tests pass, user can see their tasks\n\nSlice 3: Edit a task (update + API + UI)\n    → Tests pass, user can modify tasks\n\nSlice 4: Delete a task (delete + API + UI + confirmation)\n    → Tests pass, full CRUD complete\n```\n\nEach slice delivers working end-to-end functionality.\n\n### Contract-First Slicing\n\nWhen backend and frontend need to develop in parallel:\n\n```\nSlice 0: Define the API contract (types, interfaces, OpenAPI spec)\nSlice 1a: Implement backend against the contract + API tests\nSlice 1b: Implement frontend against mock data matching the contract\nSlice 2: Integrate and test end-to-end\n```\n\n### Risk-First Slicing\n\nTackle the riskiest or most uncertain piece first:\n\n```\nSlice 1: Prove the WebSocket connection works (highest risk)\nSlice 2: Build real-time task updates on the proven connection\nSlice 3: Add offline support and reconnection\n```\n\nIf Slice 1 fails, you discover it before investing in Slices 2 and 3.\n\n## Implementation Rules\n\n### Rule 0: Simplicity First\n\nBefore writing any code, ask: \"What is the simplest thing that could work?\"\n\nAfter writing code, review it against these checks:\n- Can this be done in fewer lines?\n- Are these abstractions earning their complexity?\n- Would a staff engineer look at this and say \"why didn't you just...\"?\n- Am I building for hypothetical future requirements, or the current task?\n\n```\nSIMPLICITY CHECK:\n✗ Generic EventBus with middleware pipeline for one notification\n✓ Simple function call\n\n✗ Abstract factory pattern for two similar components\n✓ Two straightforward components with shared utilities\n\n✗ Config-driven form builder for three forms\n✓ Three form components\n```\n\nThree similar lines of code is better than a premature abstraction. Implement the naive, obviously-correct version first. Optimize only after correctness is proven with tests.\n\n### Rule 0.5: Scope Discipline\n\nTouch only what the task requires.\n\nDo NOT:\n- \"Clean up\" code adjacent to your change\n- Refactor imports in files you're not modifying\n- Remove comments you don't fully understand\n- Add features not in the spec because they \"seem useful\"\n- Modernize syntax in files you're only reading\n\nIf you notice something worth improving outside your task scope, note it — don't fix it:\n\n```\nNOTICED BUT NOT TOUCHING:\n- src\u002Futils\u002Fformat.ts has an unused import (unrelated to this task)\n- The auth middleware could use better error messages (separate task)\n→ Want me to create tasks for these?\n```\n\n### Rule 1: One Thing at a Time\n\nEach increment changes one logical thing. Don't mix concerns:\n\n**Bad:** One commit that adds a new component, refactors an existing one, and updates the build config.\n\n**Good:** Three separate commits — one for each change.\n\n### Rule 2: Keep It Compilable\n\nAfter each increment, the project must build and existing tests must pass. Don't leave the codebase in a broken state between slices.\n\n### Rule 3: Feature Flags for Incomplete Features\n\nIf a feature isn't ready for users but you need to merge increments:\n\n```typescript\n\u002F\u002F Feature flag for work-in-progress\nconst ENABLE_TASK_SHARING = process.env.FEATURE_TASK_SHARING === 'true';\n\nif (ENABLE_TASK_SHARING) {\n  \u002F\u002F New sharing UI\n}\n```\n\nThis lets you merge small increments to the main branch without exposing incomplete work.\n\n### Rule 4: Safe Defaults\n\nNew code should default to safe, conservative behavior:\n\n```typescript\n\u002F\u002F Safe: disabled by default, opt-in\nexport function createTask(data: TaskInput, options?: { notify?: boolean }) {\n  const shouldNotify = options?.notify ?? false;\n  \u002F\u002F ...\n}\n```\n\n### Rule 5: Rollback-Friendly\n\nEach increment should be independently revertable:\n\n- Additive changes (new files, new functions) are easy to revert\n- Modifications to existing code should be minimal and focused\n- Database migrations should have corresponding rollback migrations\n- Avoid deleting something in one commit and replacing it in the same commit — separate them\n\n## Working with Agents\n\nWhen directing an agent to implement incrementally:\n\n```\n\"Let's implement Task 3 from the plan.\n\nStart with just the database schema change and the API endpoint.\nDon't touch the UI yet — we'll do that in the next increment.\n\nAfter implementing, run `npm test` and `npm run build` to verify\nnothing is broken.\"\n```\n\nBe explicit about what's in scope and what's NOT in scope for each increment.\n\n## Increment Checklist\n\nAfter each increment, verify:\n\n- [ ] The change does one thing and does it completely\n- [ ] All existing tests still pass (`npm test`)\n- [ ] The build succeeds (`npm run build`)\n- [ ] Type checking passes (`npx tsc --noEmit`)\n- [ ] Linting passes (`npm run lint`)\n- [ ] The new functionality works as expected\n- [ ] The change is committed with a descriptive message\n\n## Common Rationalizations\n\n| Rationalization | Reality |\n|---|---|\n| \"I'll test it all at the end\" | Bugs compound. A bug in Slice 1 makes Slices 2-5 wrong. Test each slice. |\n| \"It's faster to do it all at once\" | It *feels* faster until something breaks and you can't find which of 500 changed lines caused it. |\n| \"These changes are too small to commit separately\" | Small commits are free. Large commits hide bugs and make rollbacks painful. |\n| \"I'll add the feature flag later\" | If the feature isn't complete, it shouldn't be user-visible. Add the flag now. |\n| \"This refactor is small enough to include\" | Refactors mixed with features make both harder to review and debug. Separate them. |\n\n## Red Flags\n\n- More than 100 lines of code written without running tests\n- Multiple unrelated changes in a single increment\n- \"Let me just quickly add this too\" scope expansion\n- Skipping the test\u002Fverify step to move faster\n- Build or tests broken between increments\n- Large uncommitted changes accumulating\n- Building abstractions before the third use case demands it\n- Touching files outside the task scope \"while I'm here\"\n- Creating new utility files for one-time operations\n\n## Verification\n\nAfter completing all increments for a task:\n\n- [ ] Each increment was individually tested and committed\n- [ ] The full test suite passes\n- [ ] The build is clean\n- [ ] The feature works end-to-end as specified\n- [ ] No uncommitted changes remain\n","# Incremental Implementation\n\n## Overview\n\nBuild in thin vertical slices — implement one piece, test it, verify it, then expand. Avoid implementing an entire feature in one pass. Each increment should leave the system in a working, testable state. This is the execution discipline that makes large features manageable.\n\n## When to Use\n\n- Implementing any multi-file change\n- Building a new feature from a task breakdown\n- Refactoring existing code\n- Any time you're tempted to write more than ~100 lines before testing\n\n**When NOT to use:** Single-file, single-function changes where the scope is already minimal.\n\n## The Increment Cycle\n\n```\n┌──────────────────────────────────────┐\n│                                      │\n│   Implement ──→ Test ──→ Verify ──┐  │\n│       ▲                           │  │\n│       └───── Commit ◄─────────────┘  │\n│              │                       │\n│              ▼                       │\n│          Next slice                  │\n│                                      │\n└──────────────────────────────────────┘\n```\n\nFor each slice:\n\n1. **Implement** the smallest complete piece of functionality\n2. **Test** — run the test suite (or write a test if none exists)\n3. **Verify** — confirm the slice works as expected (tests pass, build succeeds, manual check)\n4. **Commit** -- save your progress with a descriptive message (see `git-workflow-and-versioning` for atomic commit guidance)\n5. **Move to the next slice** — carry forward, don't restart\n\n## Slicing Strategies\n\n### Vertical Slices (Preferred)\n\nBuild one complete path through the stack:\n\n```\nSlice 1: Create a task (DB + API + basic UI)\n    → Tests pass, user can create a task via the UI\n\nSlice 2: List tasks (query + API + UI)\n    → Tests pass, user can see their tasks\n\nSlice 3: Edit a task (update + API + UI)\n    → Tests pass, user can modify tasks\n\nSlice 4: Delete a task (delete + API + UI + confirmation)\n    → Tests pass, full CRUD complete\n```\n\nEach slice delivers working end-to-end functionality.\n\n### Contract-First Slicing\n\nWhen backend and frontend need to develop in parallel:\n\n```\nSlice 0: Define the API contract (types, interfaces, OpenAPI spec)\nSlice 1a: Implement backend against the contract + API tests\nSlice 1b: Implement frontend against mock data matching the contract\nSlice 2: Integrate and test end-to-end\n```\n\n### Risk-First Slicing\n\nTackle the riskiest or most uncertain piece first:\n\n```\nSlice 1: Prove the WebSocket connection works (highest risk)\nSlice 2: Build real-time task updates on the proven connection\nSlice 3: Add offline support and reconnection\n```\n\nIf Slice 1 fails, you discover it before investing in Slices 2 and 3.\n\n## Implementation Rules\n\n### Rule 0: Simplicity First\n\nBefore writing any code, ask: \"What is the simplest thing that could work?\"\n\nAfter writing code, review it against these checks:\n- Can this be done in fewer lines?\n- Are these abstractions earning their complexity?\n- Would a staff engineer look at this and say \"why didn't you just...\"?\n- Am I building for hypothetical future requirements, or the current task?\n\n```\nSIMPLICITY CHECK:\n✗ Generic EventBus with middleware pipeline for one notification\n✓ Simple function call\n\n✗ Abstract factory pattern for two similar components\n✓ Two straightforward components with shared utilities\n\n✗ Config-driven form builder for three forms\n✓ Three form components\n```\n\nThree similar lines of code is better than a premature abstraction. Implement the naive, obviously-correct version first. Optimize only after correctness is proven with tests.\n\n### Rule 0.5: Scope Discipline\n\nTouch only what the task requires.\n\nDo NOT:\n- \"Clean up\" code adjacent to your change\n- Refactor imports in files you're not modifying\n- Remove comments you don't fully understand\n- Add features not in the spec because they \"seem useful\"\n- Modernize syntax in files you're only reading\n\nIf you notice something worth improving outside your task scope, note it — don't fix it:\n\n```\nNOTICED BUT NOT TOUCHING:\n- src\u002Futils\u002Fformat.ts has an unused import (unrelated to this task)\n- The auth middleware could use better error messages (separate task)\n→ Want me to create tasks for these?\n```\n\n### Rule 1: One Thing at a Time\n\nEach increment changes one logical thing. Don't mix concerns:\n\n**Bad:** One commit that adds a new component, refactors an existing one, and updates the build config.\n\n**Good:** Three separate commits — one for each change.\n\n### Rule 2: Keep It Compilable\n\nAfter each increment, the project must build and existing tests must pass. Don't leave the codebase in a broken state between slices.\n\n### Rule 3: Feature Flags for Incomplete Features\n\nIf a feature isn't ready for users but you need to merge increments:\n\n```typescript\n\u002F\u002F Feature flag for work-in-progress\nconst ENABLE_TASK_SHARING = process.env.FEATURE_TASK_SHARING === 'true';\n\nif (ENABLE_TASK_SHARING) {\n  \u002F\u002F New sharing UI\n}\n```\n\nThis lets you merge small increments to the main branch without exposing incomplete work.\n\n### Rule 4: Safe Defaults\n\nNew code should default to safe, conservative behavior:\n\n```typescript\n\u002F\u002F Safe: disabled by default, opt-in\nexport function createTask(data: TaskInput, options?: { notify?: boolean }) {\n  const shouldNotify = options?.notify ?? false;\n  \u002F\u002F ...\n}\n```\n\n### Rule 5: Rollback-Friendly\n\nEach increment should be independently revertable:\n\n- Additive changes (new files, new functions) are easy to revert\n- Modifications to existing code should be minimal and focused\n- Database migrations should have corresponding rollback migrations\n- Avoid deleting something in one commit and replacing it in the same commit — separate them\n\n## Working with Agents\n\nWhen directing an agent to implement incrementally:\n\n```\n\"Let's implement Task 3 from the plan.\n\nStart with just the database schema change and the API endpoint.\nDon't touch the UI yet — we'll do that in the next increment.\n\nAfter implementing, run `npm test` and `npm run build` to verify\nnothing is broken.\"\n```\n\nBe explicit about what's in scope and what's NOT in scope for each increment.\n\n## Increment Checklist\n\nAfter each increment, verify:\n\n- [ ] The change does one thing and does it completely\n- [ ] All existing tests still pass (`npm test`)\n- [ ] The build succeeds (`npm run build`)\n- [ ] Type checking passes (`npx tsc --noEmit`)\n- [ ] Linting passes (`npm run lint`)\n- [ ] The new functionality works as expected\n- [ ] The change is committed with a descriptive message\n\n## Common Rationalizations\n\n| Rationalization | Reality |\n|---|---|\n| \"I'll test it all at the end\" | Bugs compound. A bug in Slice 1 makes Slices 2-5 wrong. Test each slice. |\n| \"It's faster to do it all at once\" | It *feels* faster until something breaks and you can't find which of 500 changed lines caused it. |\n| \"These changes are too small to commit separately\" | Small commits are free. Large commits hide bugs and make rollbacks painful. |\n| \"I'll add the feature flag later\" | If the feature isn't complete, it shouldn't be user-visible. Add the flag now. |\n| \"This refactor is small enough to include\" | Refactors mixed with features make both harder to review and debug. Separate them. |\n\n## Red Flags\n\n- More than 100 lines of code written without running tests\n- Multiple unrelated changes in a single increment\n- \"Let me just quickly add this too\" scope expansion\n- Skipping the test\u002Fverify step to move faster\n- Build or tests broken between increments\n- Large uncommitted changes accumulating\n- Building abstractions before the third use case demands it\n- Touching files outside the task scope \"while I'm here\"\n- Creating new utility files for one-time operations\n\n## Verification\n\nAfter completing all increments for a task:\n\n- [ ] Each increment was individually tested and committed\n- [ ] The full test suite passes\n- [ ] The build is clean\n- [ ] The feature works end-to-end as specified\n- [ ] No uncommitted changes remain\n",{"name":5,"description":7},"main","d8518247cb8ab8b2dac57a6be33543ffd23b97c5","code-general\u002Faddyosmani\u002Fincremental-implementation",0,"https:\u002F\u002Fgithub.com\u002Fmattonweb\u002Fai-assistant-foundry","https:\u002F\u002Fgithub.com\u002Fmattonweb","2026-05-29 08:42:23",{"source":8,"skillName":5,"commands":49,"prompt":59,"zipAvailable":60},[50,53,56],{"tool":51,"command":52},"npx","npx skills add mattonweb\u002Fai-assistant-foundry --skill incremental-implementation",{"tool":54,"command":55},"bunx","bunx skills add mattonweb\u002Fai-assistant-foundry --skill incremental-implementation",{"tool":57,"command":58},"pnpm","pnpm dlx skills add mattonweb\u002Fai-assistant-foundry --skill incremental-implementation","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fmattonweb\u002Fai-assistant-foundry\u002Fblob\u002Fmain\u002Fcode-general\u002Faddyosmani\u002Fincremental-implementation\u002FSKILL.md",true,[],[63,98,112,131,151,177],{"skillNo":64,"name":65,"nameZh":6,"description":66,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":67,"categories":68,"keywords":79,"publishedAt":36},"01M6P02DENRHN6KVGYC55FKASJ","writing-clearly-and-concisely","Use when writing prose humans will read—documentation, commit messages, error messages, explanations, reports, or UI text. Applies Strunk's timeless rules for clearer, stronger, more professional writing.","https:\u002F\u002Fgithub.com\u002Fmattonweb\u002Fai-assistant-foundry\u002Fblob\u002Fmain\u002Fwrite-technical\u002Fsoftaworks\u002Fwriting-clearly-and-concisely\u002FSKILL.md",[69,74],{"categoryNo":70,"categoryName":71,"taxonomyType":72,"taxonomyTypeDesc":73},"01JBSEEDCAT000000000000018","写作与文案","SCENARIO","使用场景",{"categoryNo":75,"categoryName":76,"taxonomyType":77,"taxonomyTypeDesc":78},"01JBSEEDCAT000000000000036","内容创作者","PROFESSION","适用职业",[80,81,82,83,84,25,85,86,87,88,89,31,90,91,92,93,94,95,96,97],"writing clearly and concisely","writing","concisely","text","for","timeless","error","professional","prose","reports","read","Rules","commit messages","messages","error messages","ui","documentation","commit",{"skillNo":99,"name":100,"nameZh":6,"description":101,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":102,"categories":103,"keywords":104,"publishedAt":36},"01M6P0286HZ8RWMFCCPC8HF7SC","crafting-effective-readmes","Use when writing or improving README files. Not all READMEs are the same — provides templates and guidance matched to your audience and project type.","https:\u002F\u002Fgithub.com\u002Fmattonweb\u002Fai-assistant-foundry\u002Fblob\u002Fmain\u002Fwrite-technical\u002Fsoftaworks\u002Fcrafting-effective-readmes\u002FSKILL.md",[],[105,106,81,107,108,31,109,110,111],"crafting effective readmes","README","templates","type","project","guidance","files",{"skillNo":113,"name":114,"nameZh":6,"description":115,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":116,"categories":117,"keywords":121,"publishedAt":36},"01M6P025A41BBTPWVTZ3GFQVG6","wiki-architect","You are a documentation architect that produces structured wiki catalogues and onboarding guides from codebases.","https:\u002F\u002Fgithub.com\u002Fmattonweb\u002Fai-assistant-foundry\u002Fblob\u002Fmain\u002Fwrite-technical\u002Fsickn33\u002Fwiki-architect\u002FSKILL.md",[118],{"categoryNo":119,"categoryName":120,"taxonomyType":77,"taxonomyTypeDesc":78},"01JBSEEDCAT000000000000038","人力资源",[122,123,124,125,27,126,127,128,129,130,96],"wiki","architect","wiki architect","unknown","documentation architect","guides","structured","community","onboarding",{"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":36},"01M6P01NSKPXP77NWB4K0PXRK5","readme","You are an expert technical writer creating comprehensive project documentation. Your goal is to write a README.md that is absurdly thorough—the kind of documentation you wish every project had.","https:\u002F\u002Fgithub.com\u002Fmattonweb\u002Fai-assistant-foundry\u002Fblob\u002Fmain\u002Fwrite-technical\u002Fsickn33\u002Freadme\u002FSKILL.md",[],[106,138,139,140,27,141,142,109,143,144,41,145,32,146,147,148,96,149,150],"project documentation","tree","kind","expert","github","wish","writer","goal","technical writer","technical","https","write a readme","safe",{"skillNo":152,"name":153,"nameZh":6,"description":154,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":155,"categories":156,"keywords":157,"publishedAt":36},"01M6P01GP0NEN8KT3A3SA6ZFVE","ubiquitous-language","Extract a DDD-style ubiquitous language glossary from the current conversation, flagging ambiguities and proposing canonical terms. Saves to UBIQUITOUS_LANGUAGE.md. Use when user wants to define domain terms, build a glossary, harden terminology, create a ubiquitous language, or mentions \"domain model\" or \"DDD\".","https:\u002F\u002Fgithub.com\u002Fmattonweb\u002Fai-assistant-foundry\u002Fblob\u002Fmain\u002Fwrite-technical\u002Fmattpocock\u002Fubiquitous-language\u002FSKILL.md",[],[158,159,31,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176],"ubiquitous language","language","extract","user","glossary","model","terms","ddd","create","build","true","canonical","style","define","harden","domain model","domain","terminology","conversation",{"skillNo":178,"name":179,"nameZh":6,"description":180,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":181,"categories":182,"keywords":185,"publishedAt":36},"01M6P01BJBP9XP4TDRT7QD1ZVA","technical-writing-style","Enforce clear, direct writing in software development documents including OKRs, PRDs, tech specs, architecture decision records (ADRs), git commit messages, PR descriptions, READMEs, changelogs, runbooks, incident postmortems, API docs, and onboarding guides. Trigger whenever a user asks to write, edit, revise, or review any of these document types. Also trigger when the user says writing \"sounds like AI\", \"feels robotic\", \"needs polish\", or asks to \"make it sound more natural\" in the context of technical or professional prose. Do not trigger for fiction, poetry, creative writing, academic papers, or legal documents unless the user explicitly asks for a more natural tone.","https:\u002F\u002Fgithub.com\u002Fmattonweb\u002Fai-assistant-foundry\u002Fblob\u002Fmain\u002Fwrite-technical\u002Fmattnebr\u002Ftechnical-writing-style\u002FSKILL.md",[183,184],{"categoryNo":70,"categoryName":71,"taxonomyType":72,"taxonomyTypeDesc":73},{"categoryNo":75,"categoryName":76,"taxonomyType":77,"taxonomyTypeDesc":78},[186,187,170,147,81,188,87,189,190,191,192,193,194,195,196,93,197,198,97,199],"writing style","technical writing style","technical writing","papers","types","runbooks","software development","incident","Poetry","decision","api","documents","architecture","review"]