[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6HQZ6CDZXRRZY0APDMXCM1P":3,"skill-same:01M6HQZ6CDZXRRZY0APDMXCM1P":72},{"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":41,"linkOnly":42,"markdownContent":43,"markdownBody":44,"frontMatter":45,"refName":49,"commitSha":50,"skillDirectory":51,"forksCount":52,"repositoryHtmlUrl":53,"repositoryHomepageUrl":6,"ownerHtmlUrl":54,"ownerBlogUrl":55,"ownerDescription":56,"updatedAt":57,"install":58,"resources":71},"01M6HQZ6CDZXRRZY0APDMXCM1P","knowledge-flywheel",null,"The full knowledge flywheel pattern: execute → nap → squask sync → constitution → next cycle","jmservera\u002Fsquad-speckit-bridge","jmservera","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F8036360?v=4","01M6HQYYYZGAS22X1CRV8WKCYR","Juan Manuel Servera","01M6HQYZ3QS3VBBK59H86DESZE",1,"MIT","https:\u002F\u002Fgithub.com\u002Fjmservera\u002Fsquad-speckit-bridge\u002Fblob\u002Fmain\u002F.squad\u002Fskills\u002Fknowledge-flywheel\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000021","资料检索与研究","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40],"knowledge flywheel","knowledge","implementation","constitution","full","pattern","next","learnings","cycle","Synthesis","spec","v0","execute","learning","nap","sync","workflows","2026-11-10 10:12:30",false,"---\nname: \"knowledge-flywheel\"\ndescription: \"The full knowledge flywheel pattern: execute → nap → squask sync → constitution → next cycle\"\ndomain: \"workflows, continuous-learning\"\nconfidence: \"medium\"\nsource: \"earned (v0.3.0 sync implementation + spec 005 learnings synthesis)\"\n---\n\n## Context\n\nThe knowledge flywheel is a compounding learning loop that makes each planning cycle smarter than the last. It closes the gap between stateless planning (Spec Kit) and stateful execution (Squad).\n\n**Traditional flow:** spec → plan → tasks → implement → ship (knowledge lost)  \n**Flywheel flow:** spec → plan → tasks → implement → **learnings → enriched spec** → repeat (knowledge compounds)\n\nThe flywheel ensures that implementation learnings (what worked, what didn't, edge cases discovered) flow back into planning so future specs avoid past mistakes.\n\n## Patterns\n\n### The Full Cycle (6 Steps)\n\n```\n1. SPECIFY\n   SpecKit phase: \u002Fspeckit.specify → spec.md\n   Input: Feature description + squad-context.md (prior learnings)\n   \n2. PLAN\n   SpecKit phase: \u002Fspeckit.plan → plan.md\n   Input: spec.md + squad-context.md\n   \n3. TASKS\n   SpecKit phase: \u002Fspeckit.tasks → tasks.md\n   Input: plan.md\n   \n4. EXECUTE\n   Squad phase: Create issues → agents work → PRs merged\n   Output: Code changes + decisions + agent history updates\n   \n5. NAP (Reflection)\n   Manual step: Review what was learned\n   Create specs\u002FNNN-feature\u002Flearnings.md\n   Update spec.md with Implementation Notes section\n   \n6. SYNC\n   Bridge command: squask sync specs\u002FNNN-feature\n   Reads: learnings.md + agent history files\n   Writes: .squad\u002Fagents\u002F{name}\u002Fhistory.md (append)\n           .specify\u002Fmemory\u002Fconstitution.md (append + version bump)\n   \n→ LOOP BACK TO STEP 1\n   Next \u002Fspeckit.specify now has enriched context\n```\n\n### Step 5: The Nap (Critical Non-Automated Step)\n\nAfter execution, before starting the next cycle:\n\n1. **Create `learnings.md` in spec directory**\n   ```markdown\n   # Implementation Learnings — Spec 005\n   \n   ## Implementation Insights\n   - What worked well\n   - What didn't work\n   - Edge cases discovered\n   \n   ## Reusable Patterns\n   - New patterns that generalize beyond this feature\n   \n   ## Architecture Observations\n   - Layer discipline validated or violated\n   \n   ## Process Observations\n   - Planning vs execution ratio\n   - Review cycle efficiency\n   \n   ## Recommendations for Future Specs\n   - What to do differently next time\n   ```\n\n2. **Update spec.md with Implementation Notes**\n   Add a section at the end of spec.md:\n   ```markdown\n   ## Implementation Notes\n   \n   **Status:** ✅ Delivered (YYYY-MM-DD)\n   \n   **Actual vs Planned:**\n   - All 5 user stories delivered\n   - Deviations: [list key differences]\n   \n   **Key Learnings:**\n   - [Summarize top 3-5 learnings]\n   - See [learnings.md](.\u002Flearnings.md) for full details\n   \n   **Process Metrics:**\n   - 12 tasks across 3 phases\n   - 75% first-review approval rate\n   - 1.25 review cycles per PR\n   ```\n\n3. **Commit both files** — they are part of the spec artifact set\n\n### Step 6: Squask Sync (Automated Knowledge Propagation)\n\n```bash\n# After learnings.md exists, run sync\nsquask sync specs\u002F005-hook-fixes-cli-polish\n\n# What it does:\n# 1. Reads specs\u002F005-*\u002Flearnings.md\n# 2. Reads .squad\u002Fagents\u002F*\u002Fhistory.md (since last sync)\n# 3. Appends new learnings to agent history files\n# 4. Appends curated learnings to .specify\u002Fmemory\u002Fconstitution.md\n# 5. Updates constitution version (1.0.0 → 1.1.0) + Last Amended date\n# 6. Writes sync state to .squad\u002F.sync-state (idempotent, prevents duplicates)\n```\n\n**Sync state tracking (idempotent):**\n```json\n{\n  \"lastSync\": \"2025-03-24T14:32:00.000Z\",\n  \"syncedSpecs\": [\"005-hook-fixes-cli-polish\"],\n  \"syncedFingerprints\": [\"hash1\", \"hash2\"]\n}\n```\n\nRe-running sync on the same spec is safe — fingerprints prevent duplicate entries.\n\n### Constitution Amendment Protocol (Part of Sync)\n\nWhen sync writes to constitution:\n\n```markdown\n**Version**: 1.1.0 | **Last Amended**: 2025-03-24\n\n## Learnings from 005-hook-fixes-cli-polish\n\n### Exit Code Contract Violation Pattern\nContracts without automated tests are documentation, not enforcement.\nPR #328 regression (exit 0 → exit 1) violated graceful-failure contract.\nSolution: Add contract-specific tests (T004).\n\n### Git Permissions Dual-Track\nExecutable permissions need both `chmod +x` (filesystem) AND \n`git update-index --chmod=+x` (git index) for clone persistence.\n```\n\nVersion bumps:\n- **Minor bump (1.0.0 → 1.1.0):** New learnings added\n- **Major bump (1.x.x → 2.0.0):** Breaking principle changes (rare)\n- **Patch bump (never):** Constitution uses major.minor.0 only\n\n### Pre-Specify Context Injection\n\nBefore starting a new spec cycle, generate context:\n\n```bash\n# Generate squad-context.md for the next feature\nsquask context specs\u002F006-new-feature\n\n# What it includes:\n# - Team Skills (highest signal)\n# - Relevant Decisions (filtered for recency)\n# - Agent Learnings (from history files, summarized)\n# - Previous Spec Learnings (from learnings.md files)\n```\n\nThen run `\u002Fspeckit.specify` — it will see squad-context.md and use it as context.\n\n## Examples\n\n### Full Flywheel Execution (Spec 005 → Spec 006)\n\n```bash\n# Spec 005 execution complete, PRs merged\n\n# Step 5: Nap\nvim specs\u002F005-hook-fixes-cli-polish\u002Flearnings.md\n# ... document insights, patterns, recommendations ...\nvim specs\u002F005-hook-fixes-cli-polish\u002Fspec.md\n# ... add Implementation Notes section ...\ngit commit -m \"chore: spec 005 learnings synthesis\"\n\n# Step 6: Sync\nsquask sync specs\u002F005-hook-fixes-cli-polish\n# Output:\n# ✅ Synced 3 learnings to .squad\u002Fagents\u002Frichard\u002Fhistory.md\n# ✅ Appended to .specify\u002Fmemory\u002Fconstitution.md (v1.0.0 → v1.1.0)\n# ✅ Sync state saved (.squad\u002F.sync-state)\n\n# Next cycle starts\nsquask context specs\u002F006-new-feature\n# Output:\n# ✅ Generated squad-context.md (8.2KB)\n# - 4 skills (3.1KB)\n# - 12 decisions (2.4KB)\n# - 8 learnings (2.7KB)\n\n# Now run SpecKit with enriched context\n\u002Fspeckit.specify \"Add MCP server mode for bridge\"\n# SpecKit sees squad-context.md, uses it for planning\n# Spec benefits from lessons learned in 005\n```\n\n### Learnings File Template\n\n```markdown\n# Implementation Learnings — Spec 005: Hook Fixes & CLI Polish\n\n**Feature:** Hook exit codes, git permissions, CLI improvements  \n**Cycle:** 2025-03-22 to 2025-03-24  \n**Tasks:** 12 (T001-T012)  \n**PRs:** 4 (all merged)  \n**Test Coverage:** 843 tests passing\n\n## Implementation Insights\n\n### Exit Code Contract Violation Pattern\n**What happened:** PR #328 changed hook exit code from 0 to 1, breaking graceful failure contract.  \n**Why it matters:** Contracts without tests are just documentation.  \n**Solution:** Add T004 (contract tests) to validate exit codes atomically.  \n**Reusable:** Any contract (CLI, API, config) needs dedicated tests separate from functionality tests.\n\n### Git Permissions Dual-Track\n**What happened:** Hooks deployed but lost executable permissions on clone.  \n**Root cause:** `chmod +x` modifies filesystem, not git index.  \n**Solution:** `git update-index --chmod=+x` persists permissions in git.  \n**Reusable:** All deployed scripts need both filesystem + git index permissions.\n\n## Reusable Patterns\n\n### Node.js Environment Check Pattern\n```bash\nif ! command -v node &>\u002Fdev\u002Fnull; then\n  echo \"⚠️  Node.js not found — skipping hook\" >&2\n  exit 0  # Graceful degradation\nfi\n```\n\n### Config-Driven Hook Behavior\n```typescript\n\u002F\u002F BridgeConfig.hooks.autoCreateIssues: boolean\n\u002F\u002F Default to automation, provide config opt-out\nif (config.hooks.autoCreateIssues) {\n  await createIssues(tasks);\n}\n```\n\n## Architecture Observations\n\n✅ **Clean Architecture compliance validated**  \nAll changes in outer layers (adapters, CLI). Zero inner-layer modifications.  \nLayer discipline holds even under tight deadlines.\n\n## Process Observations\n\n**Parallel task execution:** 60-70% time saved (T004+T006+T008 in parallel)  \n**Comprehensive upfront spec:** 75% first-review approval rate (9 of 12 PRs)  \n**Issue auto-closure gap:** Squash merge breaks GitHub auto-close (needs PR body preservation)\n\n## Recommendations for Future Specs\n\n1. **Design for actual workflow, not documented workflow** — Hooks designed for CLI but used via agents\n2. **Test contracts atomically** — Separate exit code tests from functionality tests\n3. **Git index permissions matter** — Add to deployment checklist\n4. **Config flags > code changes** — autoCreateIssues flag prevents breaking existing workflows\n5. **Exit 0 for graceful degradation** — Missing dependencies should warn, not fail\n```\n\n## Anti-Patterns\n\n- **Skipping the nap** — Going straight from execution to next spec loses learnings\n- **Sync without learnings.md** — Only agent history is synced; spec-level insights lost\n- **Manual constitution edits** — Use `squask sync`; it handles version bumping + deduplication\n- **Duplicate sync runs without checking state** — Sync is idempotent, but check `.squad\u002F.sync-state` first\n- **Ignoring squad-context.md during planning** — The whole point of the flywheel is to use prior learnings\n- **Creating learnings.md without updating spec.md** — Spec should have Implementation Notes linking to learnings\n- **Version bump without Last Amended date** — Constitution amendment protocol requires both\n","## Context\n\nThe knowledge flywheel is a compounding learning loop that makes each planning cycle smarter than the last. It closes the gap between stateless planning (Spec Kit) and stateful execution (Squad).\n\n**Traditional flow:** spec → plan → tasks → implement → ship (knowledge lost)  \n**Flywheel flow:** spec → plan → tasks → implement → **learnings → enriched spec** → repeat (knowledge compounds)\n\nThe flywheel ensures that implementation learnings (what worked, what didn't, edge cases discovered) flow back into planning so future specs avoid past mistakes.\n\n## Patterns\n\n### The Full Cycle (6 Steps)\n\n```\n1. SPECIFY\n   SpecKit phase: \u002Fspeckit.specify → spec.md\n   Input: Feature description + squad-context.md (prior learnings)\n   \n2. PLAN\n   SpecKit phase: \u002Fspeckit.plan → plan.md\n   Input: spec.md + squad-context.md\n   \n3. TASKS\n   SpecKit phase: \u002Fspeckit.tasks → tasks.md\n   Input: plan.md\n   \n4. EXECUTE\n   Squad phase: Create issues → agents work → PRs merged\n   Output: Code changes + decisions + agent history updates\n   \n5. NAP (Reflection)\n   Manual step: Review what was learned\n   Create specs\u002FNNN-feature\u002Flearnings.md\n   Update spec.md with Implementation Notes section\n   \n6. SYNC\n   Bridge command: squask sync specs\u002FNNN-feature\n   Reads: learnings.md + agent history files\n   Writes: .squad\u002Fagents\u002F{name}\u002Fhistory.md (append)\n           .specify\u002Fmemory\u002Fconstitution.md (append + version bump)\n   \n→ LOOP BACK TO STEP 1\n   Next \u002Fspeckit.specify now has enriched context\n```\n\n### Step 5: The Nap (Critical Non-Automated Step)\n\nAfter execution, before starting the next cycle:\n\n1. **Create `learnings.md` in spec directory**\n   ```markdown\n   # Implementation Learnings — Spec 005\n   \n   ## Implementation Insights\n   - What worked well\n   - What didn't work\n   - Edge cases discovered\n   \n   ## Reusable Patterns\n   - New patterns that generalize beyond this feature\n   \n   ## Architecture Observations\n   - Layer discipline validated or violated\n   \n   ## Process Observations\n   - Planning vs execution ratio\n   - Review cycle efficiency\n   \n   ## Recommendations for Future Specs\n   - What to do differently next time\n   ```\n\n2. **Update spec.md with Implementation Notes**\n   Add a section at the end of spec.md:\n   ```markdown\n   ## Implementation Notes\n   \n   **Status:** ✅ Delivered (YYYY-MM-DD)\n   \n   **Actual vs Planned:**\n   - All 5 user stories delivered\n   - Deviations: [list key differences]\n   \n   **Key Learnings:**\n   - [Summarize top 3-5 learnings]\n   - See [learnings.md](.\u002Flearnings.md) for full details\n   \n   **Process Metrics:**\n   - 12 tasks across 3 phases\n   - 75% first-review approval rate\n   - 1.25 review cycles per PR\n   ```\n\n3. **Commit both files** — they are part of the spec artifact set\n\n### Step 6: Squask Sync (Automated Knowledge Propagation)\n\n```bash\n# After learnings.md exists, run sync\nsquask sync specs\u002F005-hook-fixes-cli-polish\n\n# What it does:\n# 1. Reads specs\u002F005-*\u002Flearnings.md\n# 2. Reads .squad\u002Fagents\u002F*\u002Fhistory.md (since last sync)\n# 3. Appends new learnings to agent history files\n# 4. Appends curated learnings to .specify\u002Fmemory\u002Fconstitution.md\n# 5. Updates constitution version (1.0.0 → 1.1.0) + Last Amended date\n# 6. Writes sync state to .squad\u002F.sync-state (idempotent, prevents duplicates)\n```\n\n**Sync state tracking (idempotent):**\n```json\n{\n  \"lastSync\": \"2025-03-24T14:32:00.000Z\",\n  \"syncedSpecs\": [\"005-hook-fixes-cli-polish\"],\n  \"syncedFingerprints\": [\"hash1\", \"hash2\"]\n}\n```\n\nRe-running sync on the same spec is safe — fingerprints prevent duplicate entries.\n\n### Constitution Amendment Protocol (Part of Sync)\n\nWhen sync writes to constitution:\n\n```markdown\n**Version**: 1.1.0 | **Last Amended**: 2025-03-24\n\n## Learnings from 005-hook-fixes-cli-polish\n\n### Exit Code Contract Violation Pattern\nContracts without automated tests are documentation, not enforcement.\nPR #328 regression (exit 0 → exit 1) violated graceful-failure contract.\nSolution: Add contract-specific tests (T004).\n\n### Git Permissions Dual-Track\nExecutable permissions need both `chmod +x` (filesystem) AND \n`git update-index --chmod=+x` (git index) for clone persistence.\n```\n\nVersion bumps:\n- **Minor bump (1.0.0 → 1.1.0):** New learnings added\n- **Major bump (1.x.x → 2.0.0):** Breaking principle changes (rare)\n- **Patch bump (never):** Constitution uses major.minor.0 only\n\n### Pre-Specify Context Injection\n\nBefore starting a new spec cycle, generate context:\n\n```bash\n# Generate squad-context.md for the next feature\nsquask context specs\u002F006-new-feature\n\n# What it includes:\n# - Team Skills (highest signal)\n# - Relevant Decisions (filtered for recency)\n# - Agent Learnings (from history files, summarized)\n# - Previous Spec Learnings (from learnings.md files)\n```\n\nThen run `\u002Fspeckit.specify` — it will see squad-context.md and use it as context.\n\n## Examples\n\n### Full Flywheel Execution (Spec 005 → Spec 006)\n\n```bash\n# Spec 005 execution complete, PRs merged\n\n# Step 5: Nap\nvim specs\u002F005-hook-fixes-cli-polish\u002Flearnings.md\n# ... document insights, patterns, recommendations ...\nvim specs\u002F005-hook-fixes-cli-polish\u002Fspec.md\n# ... add Implementation Notes section ...\ngit commit -m \"chore: spec 005 learnings synthesis\"\n\n# Step 6: Sync\nsquask sync specs\u002F005-hook-fixes-cli-polish\n# Output:\n# ✅ Synced 3 learnings to .squad\u002Fagents\u002Frichard\u002Fhistory.md\n# ✅ Appended to .specify\u002Fmemory\u002Fconstitution.md (v1.0.0 → v1.1.0)\n# ✅ Sync state saved (.squad\u002F.sync-state)\n\n# Next cycle starts\nsquask context specs\u002F006-new-feature\n# Output:\n# ✅ Generated squad-context.md (8.2KB)\n# - 4 skills (3.1KB)\n# - 12 decisions (2.4KB)\n# - 8 learnings (2.7KB)\n\n# Now run SpecKit with enriched context\n\u002Fspeckit.specify \"Add MCP server mode for bridge\"\n# SpecKit sees squad-context.md, uses it for planning\n# Spec benefits from lessons learned in 005\n```\n\n### Learnings File Template\n\n```markdown\n# Implementation Learnings — Spec 005: Hook Fixes & CLI Polish\n\n**Feature:** Hook exit codes, git permissions, CLI improvements  \n**Cycle:** 2025-03-22 to 2025-03-24  \n**Tasks:** 12 (T001-T012)  \n**PRs:** 4 (all merged)  \n**Test Coverage:** 843 tests passing\n\n## Implementation Insights\n\n### Exit Code Contract Violation Pattern\n**What happened:** PR #328 changed hook exit code from 0 to 1, breaking graceful failure contract.  \n**Why it matters:** Contracts without tests are just documentation.  \n**Solution:** Add T004 (contract tests) to validate exit codes atomically.  \n**Reusable:** Any contract (CLI, API, config) needs dedicated tests separate from functionality tests.\n\n### Git Permissions Dual-Track\n**What happened:** Hooks deployed but lost executable permissions on clone.  \n**Root cause:** `chmod +x` modifies filesystem, not git index.  \n**Solution:** `git update-index --chmod=+x` persists permissions in git.  \n**Reusable:** All deployed scripts need both filesystem + git index permissions.\n\n## Reusable Patterns\n\n### Node.js Environment Check Pattern\n```bash\nif ! command -v node &>\u002Fdev\u002Fnull; then\n  echo \"⚠️  Node.js not found — skipping hook\" >&2\n  exit 0  # Graceful degradation\nfi\n```\n\n### Config-Driven Hook Behavior\n```typescript\n\u002F\u002F BridgeConfig.hooks.autoCreateIssues: boolean\n\u002F\u002F Default to automation, provide config opt-out\nif (config.hooks.autoCreateIssues) {\n  await createIssues(tasks);\n}\n```\n\n## Architecture Observations\n\n✅ **Clean Architecture compliance validated**  \nAll changes in outer layers (adapters, CLI). Zero inner-layer modifications.  \nLayer discipline holds even under tight deadlines.\n\n## Process Observations\n\n**Parallel task execution:** 60-70% time saved (T004+T006+T008 in parallel)  \n**Comprehensive upfront spec:** 75% first-review approval rate (9 of 12 PRs)  \n**Issue auto-closure gap:** Squash merge breaks GitHub auto-close (needs PR body preservation)\n\n## Recommendations for Future Specs\n\n1. **Design for actual workflow, not documented workflow** — Hooks designed for CLI but used via agents\n2. **Test contracts atomically** — Separate exit code tests from functionality tests\n3. **Git index permissions matter** — Add to deployment checklist\n4. **Config flags > code changes** — autoCreateIssues flag prevents breaking existing workflows\n5. **Exit 0 for graceful degradation** — Missing dependencies should warn, not fail\n```\n\n## Anti-Patterns\n\n- **Skipping the nap** — Going straight from execution to next spec loses learnings\n- **Sync without learnings.md** — Only agent history is synced; spec-level insights lost\n- **Manual constitution edits** — Use `squask sync`; it handles version bumping + deduplication\n- **Duplicate sync runs without checking state** — Sync is idempotent, but check `.squad\u002F.sync-state` first\n- **Ignoring squad-context.md during planning** — The whole point of the flywheel is to use prior learnings\n- **Creating learnings.md without updating spec.md** — Spec should have Implementation Notes linking to learnings\n- **Version bump without Last Amended date** — Constitution amendment protocol requires both\n",{"name":5,"domain":46,"source":47,"confidence":48,"description":7},"workflows, continuous-learning","earned (v0.3.0 sync implementation + spec 005 learnings synthesis)","medium","main","ece8f94b87fc2ae9752b7e78eda5218f11ea0186",".squad\u002Fskills\u002Fknowledge-flywheel",0,"https:\u002F\u002Fgithub.com\u002Fjmservera\u002Fsquad-speckit-bridge","https:\u002F\u002Fgithub.com\u002Fjmservera","http:\u002F\u002Fjmblog.servezas.org","Cloud Solution Architect @microsoft","2026-06-13 06:38:33",{"source":8,"skillName":5,"commands":59,"prompt":69,"zipAvailable":70},[60,63,66],{"tool":61,"command":62},"npx","npx skills add jmservera\u002Fsquad-speckit-bridge --skill knowledge-flywheel",{"tool":64,"command":65},"bunx","bunx skills add jmservera\u002Fsquad-speckit-bridge --skill knowledge-flywheel",{"tool":67,"command":68},"pnpm","pnpm dlx skills add jmservera\u002Fsquad-speckit-bridge --skill knowledge-flywheel","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fjmservera\u002Fsquad-speckit-bridge\u002Fblob\u002Fmain\u002F.squad\u002Fskills\u002Fknowledge-flywheel\u002FSKILL.md",true,[],[73,85,94,102,110,133],{"skillNo":74,"name":75,"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":76,"categories":77,"keywords":81,"publishedAt":41},"01M6HR0K6XQ7PYACETCC2P3ENT","testing-patterns","https:\u002F\u002Fgithub.com\u002Fjmservera\u002Fsquad-speckit-bridge\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fsquad\u002Fskills\u002Ftesting-patterns\u002FSKILL.md",[78],{"categoryNo":79,"categoryName":80,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量",[82,83,84],"patterns","testing patterns","testing",{"skillNo":86,"name":87,"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":88,"categories":89,"keywords":90,"publishedAt":41},"01M6HR0HKGWJPNV421ZA9GNNJN","project-conventions","https:\u002F\u002Fgithub.com\u002Fjmservera\u002Fsquad-speckit-bridge\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fsquad\u002Fskills\u002Fproject-conventions\u002FSKILL.md",[],[91,92,93],"project","conventions","project conventions",{"skillNo":95,"name":96,"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":97,"categories":98,"keywords":99,"publishedAt":41},"01M6HR0ERZB2NK3MFBWR0YYMBM","malformed-skill","https:\u002F\u002Fgithub.com\u002Fjmservera\u002Fsquad-speckit-bridge\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fsquad\u002Fskills\u002Fmalformed-skill\u002FSKILL.md",[],[100,101],"malformed skill","malformed",{"skillNo":103,"name":104,"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":105,"categories":106,"keywords":107,"publishedAt":41},"01M6HR0CSMQT5N1WNFT4WQCK5E","empty-skill","https:\u002F\u002Fgithub.com\u002Fjmservera\u002Fsquad-speckit-bridge\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fsquad\u002Fskills\u002Fempty-skill\u002FSKILL.md",[],[108,109],"empty skill","empty",{"skillNo":111,"name":112,"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":113,"categories":114,"keywords":129,"publishedAt":41},"01M6HR0AVMK7QG3PM9TKTHXD5X","api-design","https:\u002F\u002Fgithub.com\u002Fjmservera\u002Fsquad-speckit-bridge\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fsquad\u002Fskills\u002Fapi-design\u002FSKILL.md",[115,118,121,126],{"categoryNo":116,"categoryName":117,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000010","后端与接口",{"categoryNo":119,"categoryName":120,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000015","视觉设计",{"categoryNo":122,"categoryName":123,"taxonomyType":124,"taxonomyTypeDesc":125},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",{"categoryNo":127,"categoryName":128,"taxonomyType":124,"taxonomyTypeDesc":125},"01JBSEEDCAT000000000000032","设计师",[130,131,132],"api","api design","design",{"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},"01M6HR07QKF3WD1F3ADNJWP6R0","clean-architecture-bridge","https:\u002F\u002Fgithub.com\u002Fjmservera\u002Fsquad-speckit-bridge\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Freverse-sync\u002Fsquad\u002Fskills\u002Fclean-architecture-bridge\u002FSKILL.md",[],[139,140,141,142,143],"architecture","clean architecture bridge","clean architecture","clean","bridge"]