[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6KM3GZWH92DNBPQVJYZ1VVC":3,"skill-same:01M6KM3GZWH92DNBPQVJYZ1VVC":69},{"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":38,"linkOnly":39,"markdownContent":40,"markdownBody":41,"frontMatter":42,"refName":47,"commitSha":48,"skillDirectory":49,"forksCount":50,"repositoryHtmlUrl":51,"repositoryHomepageUrl":6,"ownerHtmlUrl":52,"ownerBlogUrl":53,"ownerDescription":6,"updatedAt":54,"install":55,"resources":68},"01M6KM3GZWH92DNBPQVJYZ1VVC","speckit-sync-propose",null,"Propose resolutions for detected drift. AI generates spec updates or code changes.","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\u002Fapps\u002Fworkload-generator\u002F.claude\u002Fskills\u002Fspeckit-sync-propose\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37],"speckit sync propose","sync","speckit","project","changes","for","updates","kit","with","spec-kit","commands","directory","structure","drift","specify","code","project structure","github","spec","2026-11-10 10:12:30",false,"---\nname: speckit-sync-propose\ndescription: Propose resolutions for detected drift. AI generates spec updates or\n  code changes.\ncompatibility: Requires spec-kit project structure with .specify\u002F directory\nmetadata:\n  author: github-spec-kit\n  source: sync:commands\u002Fpropose.md\n---\n\n# Spec Sync: Propose Resolutions\n\nGenerate resolution proposals for each drift item. The AI analyzes each divergence and proposes either a spec update (backfill) or code change (align).\n\n## User Input\n\n$ARGUMENTS\n\n## Prerequisites\n\nRun `speckit.sync.analyze` first to generate the drift report.\n\n## Context\n\nRead the drift report:\n- `.specify\u002Fsync\u002Fdrift-report.json`\n\n## Steps\n\n### 1. Load Drift Report\n\nRead the drift report from the previous analysis. If it doesn't exist, instruct the user to run `speckit.sync.analyze` first.\n\n### 2. For Each Drifted Requirement\n\nAnalyze the drift and determine resolution direction:\n\n#### Backfill (Code → Spec)\n\nRecommend when:\n- Code has working, tested features not in spec\n- Design docs exist that supersede the spec\n- The code represents intentional evolution\n- Tests pass for the current behavior\n\nGenerate:\n- Updated spec requirement text\n- New acceptance scenarios if needed\n- Rationale for why code is authoritative\n\n#### Align (Spec → Code)\n\nRecommend when:\n- Spec was recently reviewed\u002Fapproved\n- Code appears to be a bug or misunderstanding\n- The spec represents agreed architectural decisions\n- Changing the spec would violate constraints\n\nGenerate:\n- Code change description or diff\n- Task for implementation\n- Rationale for why spec is authoritative\n\n#### Human Decision Required\n\nFlag when:\n- Both interpretations seem valid\n- Architectural trade-offs involved\n- Insufficient context to decide\n- Conflicting design documents\n\nGenerate:\n- Summary of both options\n- Questions that would help decide\n- Request for human input\n\n### 3. For Each Unspecced Feature\n\nPropose a new spec:\n- Suggested spec ID (next available number)\n- Draft title\n- Draft user stories based on code behavior\n- Draft requirements extracted from implementation\n- Confidence score\n\n### 4. For Each Not-Implemented Requirement\n\nDetermine:\n- Is it still needed? (may be obsolete)\n- Should it be removed from spec?\n- Should it be implemented?\n\nPropose accordingly.\n\n### 5. Generate Proposal Document\n\nOutput format:\n\n```markdown\n# Drift Resolution Proposals\n\nGenerated: [timestamp]\nBased on: drift-report from [timestamp]\n\n## Summary\n\n| Resolution Type | Count |\n|-----------------|-------|\n| Backfill (Code → Spec) | X |\n| Align (Spec → Code) | X |\n| Human Decision | X |\n| New Specs | X |\n| Remove from Spec | X |\n\n## Proposals\n\n### Proposal 1: [spec-id]\u002F[requirement]\n\n**Direction**: BACKFILL | ALIGN | HUMAN_DECISION\n\n**Current State**:\n- Spec says: \"[spec text]\"\n- Code does: \"[actual behavior]\"\n\n**Proposed Resolution**:\n\n[For BACKFILL: new spec text]\n[For ALIGN: code change description]\n[For HUMAN: questions and options]\n\n**Rationale**: [why this direction]\n\n**Confidence**: HIGH | MEDIUM | LOW\n\n**Action**:\n- [ ] Approve\n- [ ] Reject\n- [ ] Modify\n\n---\n\n### Proposal 2: New Spec for [feature]\n\n**Direction**: NEW_SPEC\n\n**Feature**: [feature name]\n**Location**: [code path]\n\n**Draft Spec**:\n\n# Feature Specification: [title]\n\n## User Scenarios\n\n### User Story 1 - [story]\n[generated from code behavior]\n\n## Requirements\n\n- **FR-001**: [extracted from code]\n\n**Confidence**: MEDIUM\n\n**Action**:\n- [ ] Approve and create spec\n- [ ] Reject\n- [ ] Modify\n```\n\n### 6. Save Proposals\n\nWrite to:\n- `.specify\u002Fsync\u002Fproposals.md` (human-readable)\n- `.specify\u002Fsync\u002Fproposals.json` (machine-readable)\n\n## Interactive Mode\n\nWhen run with `--interactive`, present each proposal one at a time and prompt for approval:\n\n```\nProposal 1\u002F15: spec-011\u002FFR-001\n\nDirection: BACKFILL (Code → Spec)\n\nSpec says: \"one row per document\"\nCode does: \"supports split transactions with multiple rows\"\n\nProposed update:\n  - FR-001: System MUST append one or more rows per extracted document.\n            For split transactions, multiple rows share a LinkID.\n\nConfidence: HIGH\n\n[A]pprove \u002F [R]eject \u002F [M]odify \u002F [S]kip \u002F [Q]uit?\n```\n\n## Example Usage\n\n```\n\u002Fspeckit.sync.propose\n\n\u002Fspeckit.sync.propose --interactive\n\n\u002Fspeckit.sync.propose --strategy backfill-all\n```","# Spec Sync: Propose Resolutions\n\nGenerate resolution proposals for each drift item. The AI analyzes each divergence and proposes either a spec update (backfill) or code change (align).\n\n## User Input\n\n$ARGUMENTS\n\n## Prerequisites\n\nRun `speckit.sync.analyze` first to generate the drift report.\n\n## Context\n\nRead the drift report:\n- `.specify\u002Fsync\u002Fdrift-report.json`\n\n## Steps\n\n### 1. Load Drift Report\n\nRead the drift report from the previous analysis. If it doesn't exist, instruct the user to run `speckit.sync.analyze` first.\n\n### 2. For Each Drifted Requirement\n\nAnalyze the drift and determine resolution direction:\n\n#### Backfill (Code → Spec)\n\nRecommend when:\n- Code has working, tested features not in spec\n- Design docs exist that supersede the spec\n- The code represents intentional evolution\n- Tests pass for the current behavior\n\nGenerate:\n- Updated spec requirement text\n- New acceptance scenarios if needed\n- Rationale for why code is authoritative\n\n#### Align (Spec → Code)\n\nRecommend when:\n- Spec was recently reviewed\u002Fapproved\n- Code appears to be a bug or misunderstanding\n- The spec represents agreed architectural decisions\n- Changing the spec would violate constraints\n\nGenerate:\n- Code change description or diff\n- Task for implementation\n- Rationale for why spec is authoritative\n\n#### Human Decision Required\n\nFlag when:\n- Both interpretations seem valid\n- Architectural trade-offs involved\n- Insufficient context to decide\n- Conflicting design documents\n\nGenerate:\n- Summary of both options\n- Questions that would help decide\n- Request for human input\n\n### 3. For Each Unspecced Feature\n\nPropose a new spec:\n- Suggested spec ID (next available number)\n- Draft title\n- Draft user stories based on code behavior\n- Draft requirements extracted from implementation\n- Confidence score\n\n### 4. For Each Not-Implemented Requirement\n\nDetermine:\n- Is it still needed? (may be obsolete)\n- Should it be removed from spec?\n- Should it be implemented?\n\nPropose accordingly.\n\n### 5. Generate Proposal Document\n\nOutput format:\n\n```markdown\n# Drift Resolution Proposals\n\nGenerated: [timestamp]\nBased on: drift-report from [timestamp]\n\n## Summary\n\n| Resolution Type | Count |\n|-----------------|-------|\n| Backfill (Code → Spec) | X |\n| Align (Spec → Code) | X |\n| Human Decision | X |\n| New Specs | X |\n| Remove from Spec | X |\n\n## Proposals\n\n### Proposal 1: [spec-id]\u002F[requirement]\n\n**Direction**: BACKFILL | ALIGN | HUMAN_DECISION\n\n**Current State**:\n- Spec says: \"[spec text]\"\n- Code does: \"[actual behavior]\"\n\n**Proposed Resolution**:\n\n[For BACKFILL: new spec text]\n[For ALIGN: code change description]\n[For HUMAN: questions and options]\n\n**Rationale**: [why this direction]\n\n**Confidence**: HIGH | MEDIUM | LOW\n\n**Action**:\n- [ ] Approve\n- [ ] Reject\n- [ ] Modify\n\n---\n\n### Proposal 2: New Spec for [feature]\n\n**Direction**: NEW_SPEC\n\n**Feature**: [feature name]\n**Location**: [code path]\n\n**Draft Spec**:\n\n# Feature Specification: [title]\n\n## User Scenarios\n\n### User Story 1 - [story]\n[generated from code behavior]\n\n## Requirements\n\n- **FR-001**: [extracted from code]\n\n**Confidence**: MEDIUM\n\n**Action**:\n- [ ] Approve and create spec\n- [ ] Reject\n- [ ] Modify\n```\n\n### 6. Save Proposals\n\nWrite to:\n- `.specify\u002Fsync\u002Fproposals.md` (human-readable)\n- `.specify\u002Fsync\u002Fproposals.json` (machine-readable)\n\n## Interactive Mode\n\nWhen run with `--interactive`, present each proposal one at a time and prompt for approval:\n\n```\nProposal 1\u002F15: spec-011\u002FFR-001\n\nDirection: BACKFILL (Code → Spec)\n\nSpec says: \"one row per document\"\nCode does: \"supports split transactions with multiple rows\"\n\nProposed update:\n  - FR-001: System MUST append one or more rows per extracted document.\n            For split transactions, multiple rows share a LinkID.\n\nConfidence: HIGH\n\n[A]pprove \u002F [R]eject \u002F [M]odify \u002F [S]kip \u002F [Q]uit?\n```\n\n## Example Usage\n\n```\n\u002Fspeckit.sync.propose\n\n\u002Fspeckit.sync.propose --interactive\n\n\u002Fspeckit.sync.propose --strategy backfill-all\n```",{"name":5,"metadata":43,"description":7,"compatibility":46},{"author":44,"source":45},"github-spec-kit","sync:commands\u002Fpropose.md","Requires spec-kit project structure with .specify\u002F directory","unstable","dc564aa356769b7754391c9fa4fdaa0f179f476c","apps\u002Fworkload-generator\u002F.claude\u002Fskills\u002Fspeckit-sync-propose",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":56,"prompt":66,"zipAvailable":67},[57,60,63],{"tool":58,"command":59},"npx","npx skills add AI-native-Systems-Research\u002Fai-native-storage-certus --skill speckit-sync-propose",{"tool":61,"command":62},"bunx","bunx skills add AI-native-Systems-Research\u002Fai-native-storage-certus --skill speckit-sync-propose",{"tool":64,"command":65},"pnpm","pnpm dlx skills add AI-native-Systems-Research\u002Fai-native-storage-certus --skill speckit-sync-propose","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FAI-native-Systems-Research\u002Fai-native-storage-certus\u002Fblob\u002Funstable\u002Fapps\u002Fworkload-generator\u002F.claude\u002Fskills\u002Fspeckit-sync-propose\u002FSKILL.md",true,[],[70,86,101,112,127,139],{"skillNo":71,"name":72,"nameZh":6,"description":73,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":74,"categories":75,"keywords":76,"publishedAt":38},"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",[],[77,78,20,34,79,80,81,82,27,83,84,85],"tools spin sync","Tools","verify","model","models","name","re","source","source code",{"skillNo":87,"name":88,"nameZh":6,"description":89,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":90,"categories":91,"keywords":92,"publishedAt":38},"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",[],[93,80,78,94,95,96,24,97,98,99,100],"tools spin model","system","formal verification","number","prove","new","create","verification",{"skillNo":102,"name":103,"nameZh":6,"description":104,"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":38},"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",[],[108,109,78,110,100,111],"tools creusot install","install","rust","tool",{"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":118,"publishedAt":38},"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",[],[119,78,120,22,30,121,122,100,123,95,124,125,126],"tools creusot init","init","components","prepare","use","cargo","manager","Existing",{"skillNo":128,"name":129,"nameZh":6,"description":130,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":131,"categories":132,"keywords":133,"publishedAt":38},"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",[],[134,135,109,78,24,126,136,137,100,138],"tools creusot coq install","Coq","as","installation","add",{"skillNo":140,"name":141,"nameZh":6,"description":142,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":143,"categories":144,"keywords":145,"publishedAt":38},"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",[],[78,146,147,27,82,148,79,149,150],"tools creusot annotate interfaces","annotate","properties","component","interface"]