[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6KMW4GSZ8FF8A2Z5ZSPKDBQ":3,"skill-same:01M6KMW4GSZ8FF8A2Z5ZSPKDBQ":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":39,"linkOnly":40,"markdownContent":41,"markdownBody":42,"frontMatter":43,"refName":48,"commitSha":49,"skillDirectory":50,"forksCount":51,"repositoryHtmlUrl":52,"repositoryHomepageUrl":6,"ownerHtmlUrl":53,"ownerBlogUrl":54,"ownerDescription":6,"updatedAt":55,"install":56,"resources":69},"01M6KMW4GSZ8FF8A2Z5ZSPKDBQ","speckit-sync-analyze",null,"Analyze drift between specs and implementation. Compares requirements against code to find divergence.","AI-native-Systems-Research\u002Fai-native-storage-certus","AI-native-Systems-Research","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F270755458?v=4","01M6KKQWSJX0D4X33E0KKSR4WM","AI-native Systems Research","01M6KKQWXTKR6MYVQMPKVJ5WD5",3,"Apache-2.0","https:\u002F\u002Fgithub.com\u002FAI-native-Systems-Research\u002Fai-native-storage-certus\u002Fblob\u002Funstable\u002Fcomponents\u002Fdispatcher-p2p\u002F.claude\u002Fskills\u002Fspeckit-sync-analyze\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],"speckit sync analyze","sync","speckit","analyze","drift","kit","with","spec-kit","requirements","commands","project","structure","directory","implementation","find","specify","code","project structure","github","spec","2026-11-10 10:12:30",false,"---\nname: speckit-sync-analyze\ndescription: Analyze drift between specs and implementation. Compares requirements\n  against code to find divergence.\ncompatibility: Requires spec-kit project structure with .specify\u002F directory\nmetadata:\n  author: github-spec-kit\n  source: sync:commands\u002Fanalyze.md\n---\n\n# Spec Sync: Analyze Drift\n\nAnalyze drift between specifications and implementation. This command compares your spec requirements (FR-*, SC-*, acceptance scenarios) against the actual codebase to identify where they've diverged.\n\n## User Input\n\n$ARGUMENTS\n\n## Context\n\nRead the project structure to understand the codebase:\n- Specs directory: Look for `specs\u002F*\u002Fspec.md` files\n- Implementation: Look for source files matching the project type\n\n## Steps\n\n### 1. Discover Specs\n\nFind all spec files in the project:\n\n```bash\nfind specs -name \"spec.md\" -type f 2>\u002Fdev\u002Fnull | sort\n```\n\nFor each spec, extract:\n- Spec ID (directory name)\n- Title (first heading)\n- Functional requirements (FR-001, FR-002, etc.)\n- Success criteria (SC-001, SC-002, etc.)\n- Key acceptance scenarios\n\n### 2. Analyze Implementation\n\nFor each spec, determine:\n- Which requirements have corresponding implementation\n- Which requirements appear unimplemented\n- Which code features exist without spec coverage\n\nUse these heuristics:\n- CLI commands mentioned in spec → Check for corresponding Command classes\n- Services mentioned in spec → Check for corresponding Service classes\n- Entities\u002Fmodels mentioned → Check for corresponding entity files\n- Test coverage → Check for corresponding test files\n\n### 3. Detect Unspecced Code\n\nFind code that doesn't match any spec:\n- Commands not referenced in any spec\n- Services not referenced in any spec\n- Features that evolved beyond their spec\n\n### 4. Generate Drift Report\n\nOutput a structured report in this format:\n\n```markdown\n# Spec Drift Report\n\nGenerated: [timestamp]\nProject: [project name]\n\n## Summary\n\n| Category | Count |\n|----------|-------|\n| Specs Analyzed | X |\n| Requirements Checked | X |\n| ✓ Aligned | X (Y%) |\n| ⚠️ Drifted | X (Y%) |\n| ✗ Not Implemented | X (Y%) |\n| ? Unspecced Code | X |\n\n## Detailed Findings\n\n### Spec: [spec-id] - [title]\n\n#### Aligned ✓\n- FR-001: [description] → [implementation location]\n\n#### Drifted ⚠️\n- FR-002: Spec says \"[spec text]\" but code does \"[actual behavior]\"\n  - Location: [file:line]\n  - Severity: [minor|moderate|major]\n\n#### Not Implemented ✗\n- FR-003: [description]\n\n### Unspecced Code ?\n\n| Feature | Location | Lines | Suggested Spec |\n|---------|----------|-------|----------------|\n| [feature] | [path] | [count] | [spec-XXX] |\n\n## Inter-Spec Conflicts\n\n[List any contradictions between specs]\n\n## Recommendations\n\n1. [First recommendation]\n2. [Second recommendation]\n```\n\n### 5. Write Report\n\nSave the report to:\n- `.specify\u002Fsync\u002Fdrift-report.md` (human-readable)\n- `.specify\u002Fsync\u002Fdrift-report.json` (machine-readable)\n\n## Output Format\n\nThe JSON report should follow this schema:\n\n```json\n{\n  \"generated\": \"ISO-8601 timestamp\",\n  \"project\": \"project name\",\n  \"summary\": {\n    \"specs_analyzed\": 0,\n    \"requirements_checked\": 0,\n    \"aligned\": 0,\n    \"drifted\": 0,\n    \"not_implemented\": 0,\n    \"unspecced_features\": 0\n  },\n  \"specs\": [\n    {\n      \"id\": \"spec-id\",\n      \"title\": \"Spec Title\",\n      \"aligned\": [\"FR-001\", \"FR-002\"],\n      \"drifted\": [\n        {\n          \"requirement\": \"FR-003\",\n          \"spec_text\": \"what spec says\",\n          \"actual\": \"what code does\",\n          \"location\": \"path\u002Fto\u002Ffile.cs:123\",\n          \"severity\": \"moderate\"\n        }\n      ],\n      \"not_implemented\": [\"FR-004\"]\n    }\n  ],\n  \"unspecced\": [\n    {\n      \"feature\": \"FeatureName\",\n      \"location\": \"path\u002Fto\u002Ffile\",\n      \"lines\": 150,\n      \"suggested_spec\": \"spec-013\"\n    }\n  ],\n  \"conflicts\": []\n}\n```\n\n## Example Usage\n\n```\n\u002Fspeckit.sync.analyze\n\n\u002Fspeckit.sync.analyze --spec 011-register-write\n\n\u002Fspeckit.sync.analyze --json\n```\n\n## Notes\n\n- This is a read-only analysis - no files are modified\n- Large codebases may take time to analyze\n- Use `--spec \u003Cid>` to analyze a single spec\n- Use `--json` for machine-readable output only","# Spec Sync: Analyze Drift\n\nAnalyze drift between specifications and implementation. This command compares your spec requirements (FR-*, SC-*, acceptance scenarios) against the actual codebase to identify where they've diverged.\n\n## User Input\n\n$ARGUMENTS\n\n## Context\n\nRead the project structure to understand the codebase:\n- Specs directory: Look for `specs\u002F*\u002Fspec.md` files\n- Implementation: Look for source files matching the project type\n\n## Steps\n\n### 1. Discover Specs\n\nFind all spec files in the project:\n\n```bash\nfind specs -name \"spec.md\" -type f 2>\u002Fdev\u002Fnull | sort\n```\n\nFor each spec, extract:\n- Spec ID (directory name)\n- Title (first heading)\n- Functional requirements (FR-001, FR-002, etc.)\n- Success criteria (SC-001, SC-002, etc.)\n- Key acceptance scenarios\n\n### 2. Analyze Implementation\n\nFor each spec, determine:\n- Which requirements have corresponding implementation\n- Which requirements appear unimplemented\n- Which code features exist without spec coverage\n\nUse these heuristics:\n- CLI commands mentioned in spec → Check for corresponding Command classes\n- Services mentioned in spec → Check for corresponding Service classes\n- Entities\u002Fmodels mentioned → Check for corresponding entity files\n- Test coverage → Check for corresponding test files\n\n### 3. Detect Unspecced Code\n\nFind code that doesn't match any spec:\n- Commands not referenced in any spec\n- Services not referenced in any spec\n- Features that evolved beyond their spec\n\n### 4. Generate Drift Report\n\nOutput a structured report in this format:\n\n```markdown\n# Spec Drift Report\n\nGenerated: [timestamp]\nProject: [project name]\n\n## Summary\n\n| Category | Count |\n|----------|-------|\n| Specs Analyzed | X |\n| Requirements Checked | X |\n| ✓ Aligned | X (Y%) |\n| ⚠️ Drifted | X (Y%) |\n| ✗ Not Implemented | X (Y%) |\n| ? Unspecced Code | X |\n\n## Detailed Findings\n\n### Spec: [spec-id] - [title]\n\n#### Aligned ✓\n- FR-001: [description] → [implementation location]\n\n#### Drifted ⚠️\n- FR-002: Spec says \"[spec text]\" but code does \"[actual behavior]\"\n  - Location: [file:line]\n  - Severity: [minor|moderate|major]\n\n#### Not Implemented ✗\n- FR-003: [description]\n\n### Unspecced Code ?\n\n| Feature | Location | Lines | Suggested Spec |\n|---------|----------|-------|----------------|\n| [feature] | [path] | [count] | [spec-XXX] |\n\n## Inter-Spec Conflicts\n\n[List any contradictions between specs]\n\n## Recommendations\n\n1. [First recommendation]\n2. [Second recommendation]\n```\n\n### 5. Write Report\n\nSave the report to:\n- `.specify\u002Fsync\u002Fdrift-report.md` (human-readable)\n- `.specify\u002Fsync\u002Fdrift-report.json` (machine-readable)\n\n## Output Format\n\nThe JSON report should follow this schema:\n\n```json\n{\n  \"generated\": \"ISO-8601 timestamp\",\n  \"project\": \"project name\",\n  \"summary\": {\n    \"specs_analyzed\": 0,\n    \"requirements_checked\": 0,\n    \"aligned\": 0,\n    \"drifted\": 0,\n    \"not_implemented\": 0,\n    \"unspecced_features\": 0\n  },\n  \"specs\": [\n    {\n      \"id\": \"spec-id\",\n      \"title\": \"Spec Title\",\n      \"aligned\": [\"FR-001\", \"FR-002\"],\n      \"drifted\": [\n        {\n          \"requirement\": \"FR-003\",\n          \"spec_text\": \"what spec says\",\n          \"actual\": \"what code does\",\n          \"location\": \"path\u002Fto\u002Ffile.cs:123\",\n          \"severity\": \"moderate\"\n        }\n      ],\n      \"not_implemented\": [\"FR-004\"]\n    }\n  ],\n  \"unspecced\": [\n    {\n      \"feature\": \"FeatureName\",\n      \"location\": \"path\u002Fto\u002Ffile\",\n      \"lines\": 150,\n      \"suggested_spec\": \"spec-013\"\n    }\n  ],\n  \"conflicts\": []\n}\n```\n\n## Example Usage\n\n```\n\u002Fspeckit.sync.analyze\n\n\u002Fspeckit.sync.analyze --spec 011-register-write\n\n\u002Fspeckit.sync.analyze --json\n```\n\n## Notes\n\n- This is a read-only analysis - no files are modified\n- Large codebases may take time to analyze\n- Use `--spec \u003Cid>` to analyze a single spec\n- Use `--json` for machine-readable output only",{"name":5,"metadata":44,"description":7,"compatibility":47},{"author":45,"source":46},"github-spec-kit","sync:commands\u002Fanalyze.md","Requires spec-kit project structure with .specify\u002F directory","unstable","dc564aa356769b7754391c9fa4fdaa0f179f476c","components\u002Fdispatcher-p2p\u002F.claude\u002Fskills\u002Fspeckit-sync-analyze",4,"https:\u002F\u002Fgithub.com\u002FAI-native-Systems-Research\u002Fai-native-storage-certus","https:\u002F\u002Fgithub.com\u002FAI-native-Systems-Research","https:\u002F\u002Fai-native-systems-research.github.io\u002Fai-native-systems-research\u002F","2026-11-12 06:08:32",{"source":8,"skillName":5,"commands":57,"prompt":67,"zipAvailable":68},[58,61,64],{"tool":59,"command":60},"npx","npx skills add AI-native-Systems-Research\u002Fai-native-storage-certus --skill speckit-sync-analyze",{"tool":62,"command":63},"bunx","bunx skills add AI-native-Systems-Research\u002Fai-native-storage-certus --skill speckit-sync-analyze",{"tool":65,"command":66},"pnpm","pnpm dlx skills add AI-native-Systems-Research\u002Fai-native-storage-certus --skill speckit-sync-analyze","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FAI-native-Systems-Research\u002Fai-native-storage-certus\u002Fblob\u002Funstable\u002Fcomponents\u002Fdispatcher-p2p\u002F.claude\u002Fskills\u002Fspeckit-sync-analyze\u002FSKILL.md",true,[],[71,87,103,114,129,141],{"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":39},"01M6KP29TWSNGADF3AJ47BR7TY","tools-spin-sync","Synchronize Spin\u002FPromela models with current source code and re-verify","https:\u002F\u002Fgithub.com\u002FAI-native-Systems-Research\u002Fai-native-storage-certus\u002Fblob\u002Funstable\u002Fcomponents\u002Fzyre\u002F.claude\u002Fskills\u002Ftools-spin-sync\u002FSKILL.md",[],[78,79,20,35,80,81,82,83,25,84,85,86],"tools spin sync","Tools","verify","model","models","name","re","source","source code",{"skillNo":88,"name":89,"nameZh":6,"description":90,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":91,"categories":92,"keywords":93,"publishedAt":39},"01M6KP277TDY3ZAJEBP5P6MDT8","tools-spin-model","Create a new Spin\u002FPromela formal verification model for a system property","https:\u002F\u002Fgithub.com\u002FAI-native-Systems-Research\u002Fai-native-storage-certus\u002Fblob\u002Funstable\u002Fcomponents\u002Fzyre\u002F.claude\u002Fskills\u002Ftools-spin-model\u002FSKILL.md",[],[94,81,79,95,96,97,98,99,100,101,102],"tools spin model","system","formal verification","number","for","prove","new","create","verification",{"skillNo":104,"name":105,"nameZh":6,"description":106,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":107,"categories":108,"keywords":109,"publishedAt":39},"01M6KP250W406CEDSF02BRXT9D","tools-creusot-install","Install the Creusot Rust verification tool","https:\u002F\u002Fgithub.com\u002FAI-native-Systems-Research\u002Fai-native-storage-certus\u002Fblob\u002Funstable\u002Fcomponents\u002Fzyre\u002F.claude\u002Fskills\u002Ftools-creusot-install\u002FSKILL.md",[],[110,111,79,112,102,113],"tools creusot install","install","rust","tool",{"skillNo":115,"name":116,"nameZh":6,"description":117,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":118,"categories":119,"keywords":120,"publishedAt":39},"01M6KP22H28FQ1X0V7VJHEFWXD","tools-creusot-init","Prepare an existing Cargo project to use Creusot formal verification","https:\u002F\u002Fgithub.com\u002FAI-native-Systems-Research\u002Fai-native-storage-certus\u002Fblob\u002Funstable\u002Fcomponents\u002Fzyre\u002F.claude\u002Fskills\u002Ftools-creusot-init\u002FSKILL.md",[],[121,79,122,29,31,123,124,102,125,96,126,127,128],"tools creusot init","init","components","prepare","use","cargo","manager","Existing",{"skillNo":130,"name":131,"nameZh":6,"description":132,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":133,"categories":134,"keywords":135,"publishedAt":39},"01M6KP1V506J9YM8DKKVDG1NRE","tools-creusot-coq-install","Add Coq 8.20 as an additional prover to an existing Creusot installation, for verification conditions that SMT solvers cannot discharge","https:\u002F\u002Fgithub.com\u002FAI-native-Systems-Research\u002Fai-native-storage-certus\u002Fblob\u002Funstable\u002Fcomponents\u002Fzyre\u002F.claude\u002Fskills\u002Ftools-creusot-coq-install\u002FSKILL.md",[],[136,137,111,79,98,128,138,139,102,140],"tools creusot coq install","Coq","as","installation","add",{"skillNo":142,"name":143,"nameZh":6,"description":144,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":145,"categories":146,"keywords":147,"publishedAt":39},"01M6KP1PQJF3H765TYZAZ7P3EF","tools-creusot-annotate-interfaces","Formally verify a component's properties with Creusot and annotate its interface definitions","https:\u002F\u002Fgithub.com\u002FAI-native-Systems-Research\u002Fai-native-storage-certus\u002Fblob\u002Funstable\u002Fcomponents\u002Fzyre\u002F.claude\u002Fskills\u002Ftools-creusot-annotate-interfaces\u002FSKILL.md",[],[79,148,149,25,83,150,80,151,152],"tools creusot annotate interfaces","annotate","properties","component","interface"]