[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6KM32DZGRA1RGTY0WW91JRE":3,"skill-same:01M6KM32DZGRA1RGTY0WW91JRE":67},{"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":45,"commitSha":46,"skillDirectory":47,"forksCount":48,"repositoryHtmlUrl":49,"repositoryHomepageUrl":6,"ownerHtmlUrl":50,"ownerBlogUrl":51,"ownerDescription":6,"updatedAt":52,"install":53,"resources":66},"01M6KM32DZGRA1RGTY0WW91JRE","speckit-sync-apply",null,"Apply approved drift resolutions to specs and\u002For code","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-apply\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35],"speckit sync apply","apply","sync","speckit","structure","kit","with","spec-kit","commands","project","directory","drift","specify","code","project structure","github","spec","2026-11-10 10:12:30",false,"---\nname: speckit-sync-apply\ndescription: Apply approved drift resolutions to specs and\u002For code\ncompatibility: Requires spec-kit project structure with .specify\u002F directory\nmetadata:\n  author: github-spec-kit\n  source: sync:commands\u002Fapply.md\n---\n\n# Spec Sync: Apply Resolutions\n\nApply approved resolutions from the proposals file. Updates specs or generates implementation tasks.\n\n## User Input\n\n$ARGUMENTS\n\n## Prerequisites\n\n1. Run `speckit.sync.analyze` to generate drift report\n2. Run `speckit.sync.propose` to generate proposals\n3. Review and mark proposals as approved in `.specify\u002Fsync\u002Fproposals.json`\n\n## Context\n\nRead:\n- `.specify\u002Fsync\u002Fproposals.json` - proposals with approval status\n- Original spec files that need updating\n\n## Steps\n\n### 1. Load Approved Proposals\n\nRead proposals and filter to those marked `approved: true`.\n\nIf no proposals are approved:\n- In interactive mode: prompt to review proposals first\n- In batch mode: exit with \"No approved proposals to apply\"\n\n### 2. Apply Backfill Proposals\n\nFor each approved BACKFILL proposal:\n\n1. Read the original spec file\n2. Locate the requirement being updated\n3. Replace with proposed text\n4. Add any new acceptance scenarios\n5. Update the spec's \"Status\" or \"Last Modified\" metadata\n6. Write the updated spec\n\nTrack changes:\n```json\n{\n  \"spec\": \"spec-011\",\n  \"requirement\": \"FR-001\",\n  \"before\": \"original text\",\n  \"after\": \"updated text\",\n  \"applied_at\": \"timestamp\"\n}\n```\n\n### 3. Apply New Spec Proposals\n\nFor each approved NEW_SPEC proposal:\n\n1. Create new spec directory: `specs\u002F{spec-id}\u002F`\n2. Write `spec.md` with generated content\n3. Create empty `tasks.md` placeholder\n4. Add to git (if in a git repo)\n\n### 4. Generate Implementation Tasks for Align Proposals\n\nFor ALIGN proposals (spec → code), don't modify code directly. Instead:\n\n1. Generate a task file: `.specify\u002Fsync\u002Falign-tasks.md`\n2. Each task describes the code change needed\n3. Optionally create GitHub issues if `--create-issues` is passed\n\nTask format:\n```markdown\n## Task: Align [spec-id]\u002F[requirement]\n\n**Spec Requirement**: [FR-XXX]\n**Current Code**: [description of current behavior]\n**Required Change**: [description of needed change]\n**Files to Modify**: [list of files]\n**Estimated Effort**: [small\u002Fmedium\u002Flarge]\n\n### Acceptance Criteria\n- [ ] [criterion 1]\n- [ ] [criterion 2]\n```\n\n### 5. Handle Supersede Resolutions\n\nFor SUPERSEDE proposals:\n\n1. Add `superseded_by` field to old spec metadata\n2. Add cross-reference in new spec\n3. Optionally mark old spec as deprecated\n\n### 6. Generate Apply Report\n\n```markdown\n# Sync Apply Report\n\nApplied: [timestamp]\n\n## Changes Made\n\n### Specs Updated\n| Spec | Requirement | Change Type |\n|------|-------------|-------------|\n| spec-011 | FR-001 | Modified |\n| spec-011 | FR-015 | Added |\n\n### New Specs Created\n- spec-013-reconciliation\n\n### Implementation Tasks Generated\n- 3 tasks in `.specify\u002Fsync\u002Falign-tasks.md`\n\n### Not Applied\n| Proposal | Reason |\n|----------|--------|\n| spec-008\u002FFR-003 | Not approved |\n\n## Next Steps\n\n1. Review updated specs\n2. Commit changes: `git add specs\u002F && git commit -m \"sync: apply drift resolutions\"`\n3. Implement tasks in align-tasks.md\n```\n\n### 7. Save Report\n\nWrite to:\n- `.specify\u002Fsync\u002Fapply-report.md`\n- `.specify\u002Fsync\u002Fapply-report.json`\n\n## Options\n\n- `--dry-run`: Show what would be applied without making changes\n- `--create-issues`: Create GitHub issues for ALIGN tasks\n- `--auto-commit`: Commit spec changes automatically\n- `--spec \u003Cid>`: Apply only proposals for a specific spec\n\n## Example Usage\n\n```\n\u002Fspeckit.sync.apply --dry-run\n\n\u002Fspeckit.sync.apply\n\n\u002Fspeckit.sync.apply --auto-commit --create-issues\n```\n\n## Safety\n\n- Always creates backups before modifying specs\n- Backups stored in `.specify\u002Fsync\u002Fbackups\u002F`\n- Use `--dry-run` first to preview changes\n- All changes are logged for audit","# Spec Sync: Apply Resolutions\n\nApply approved resolutions from the proposals file. Updates specs or generates implementation tasks.\n\n## User Input\n\n$ARGUMENTS\n\n## Prerequisites\n\n1. Run `speckit.sync.analyze` to generate drift report\n2. Run `speckit.sync.propose` to generate proposals\n3. Review and mark proposals as approved in `.specify\u002Fsync\u002Fproposals.json`\n\n## Context\n\nRead:\n- `.specify\u002Fsync\u002Fproposals.json` - proposals with approval status\n- Original spec files that need updating\n\n## Steps\n\n### 1. Load Approved Proposals\n\nRead proposals and filter to those marked `approved: true`.\n\nIf no proposals are approved:\n- In interactive mode: prompt to review proposals first\n- In batch mode: exit with \"No approved proposals to apply\"\n\n### 2. Apply Backfill Proposals\n\nFor each approved BACKFILL proposal:\n\n1. Read the original spec file\n2. Locate the requirement being updated\n3. Replace with proposed text\n4. Add any new acceptance scenarios\n5. Update the spec's \"Status\" or \"Last Modified\" metadata\n6. Write the updated spec\n\nTrack changes:\n```json\n{\n  \"spec\": \"spec-011\",\n  \"requirement\": \"FR-001\",\n  \"before\": \"original text\",\n  \"after\": \"updated text\",\n  \"applied_at\": \"timestamp\"\n}\n```\n\n### 3. Apply New Spec Proposals\n\nFor each approved NEW_SPEC proposal:\n\n1. Create new spec directory: `specs\u002F{spec-id}\u002F`\n2. Write `spec.md` with generated content\n3. Create empty `tasks.md` placeholder\n4. Add to git (if in a git repo)\n\n### 4. Generate Implementation Tasks for Align Proposals\n\nFor ALIGN proposals (spec → code), don't modify code directly. Instead:\n\n1. Generate a task file: `.specify\u002Fsync\u002Falign-tasks.md`\n2. Each task describes the code change needed\n3. Optionally create GitHub issues if `--create-issues` is passed\n\nTask format:\n```markdown\n## Task: Align [spec-id]\u002F[requirement]\n\n**Spec Requirement**: [FR-XXX]\n**Current Code**: [description of current behavior]\n**Required Change**: [description of needed change]\n**Files to Modify**: [list of files]\n**Estimated Effort**: [small\u002Fmedium\u002Flarge]\n\n### Acceptance Criteria\n- [ ] [criterion 1]\n- [ ] [criterion 2]\n```\n\n### 5. Handle Supersede Resolutions\n\nFor SUPERSEDE proposals:\n\n1. Add `superseded_by` field to old spec metadata\n2. Add cross-reference in new spec\n3. Optionally mark old spec as deprecated\n\n### 6. Generate Apply Report\n\n```markdown\n# Sync Apply Report\n\nApplied: [timestamp]\n\n## Changes Made\n\n### Specs Updated\n| Spec | Requirement | Change Type |\n|------|-------------|-------------|\n| spec-011 | FR-001 | Modified |\n| spec-011 | FR-015 | Added |\n\n### New Specs Created\n- spec-013-reconciliation\n\n### Implementation Tasks Generated\n- 3 tasks in `.specify\u002Fsync\u002Falign-tasks.md`\n\n### Not Applied\n| Proposal | Reason |\n|----------|--------|\n| spec-008\u002FFR-003 | Not approved |\n\n## Next Steps\n\n1. Review updated specs\n2. Commit changes: `git add specs\u002F && git commit -m \"sync: apply drift resolutions\"`\n3. Implement tasks in align-tasks.md\n```\n\n### 7. Save Report\n\nWrite to:\n- `.specify\u002Fsync\u002Fapply-report.md`\n- `.specify\u002Fsync\u002Fapply-report.json`\n\n## Options\n\n- `--dry-run`: Show what would be applied without making changes\n- `--create-issues`: Create GitHub issues for ALIGN tasks\n- `--auto-commit`: Commit spec changes automatically\n- `--spec \u003Cid>`: Apply only proposals for a specific spec\n\n## Example Usage\n\n```\n\u002Fspeckit.sync.apply --dry-run\n\n\u002Fspeckit.sync.apply\n\n\u002Fspeckit.sync.apply --auto-commit --create-issues\n```\n\n## Safety\n\n- Always creates backups before modifying specs\n- Backups stored in `.specify\u002Fsync\u002Fbackups\u002F`\n- Use `--dry-run` first to preview changes\n- All changes are logged for audit",{"name":5,"metadata":41,"description":7,"compatibility":44},{"author":42,"source":43},"github-spec-kit","sync:commands\u002Fapply.md","Requires spec-kit project structure with .specify\u002F directory","unstable","dc564aa356769b7754391c9fa4fdaa0f179f476c","apps\u002Fworkload-generator\u002F.claude\u002Fskills\u002Fspeckit-sync-apply",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":54,"prompt":64,"zipAvailable":65},[55,58,61],{"tool":56,"command":57},"npx","npx skills add AI-native-Systems-Research\u002Fai-native-storage-certus --skill speckit-sync-apply",{"tool":59,"command":60},"bunx","bunx skills add AI-native-Systems-Research\u002Fai-native-storage-certus --skill speckit-sync-apply",{"tool":62,"command":63},"pnpm","pnpm dlx skills add AI-native-Systems-Research\u002Fai-native-storage-certus --skill speckit-sync-apply","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FAI-native-Systems-Research\u002Fai-native-storage-certus\u002Fblob\u002Funstable\u002Fapps\u002Fworkload-generator\u002F.claude\u002Fskills\u002Fspeckit-sync-apply\u002FSKILL.md",true,[],[68,84,100,111,126,138],{"skillNo":69,"name":70,"nameZh":6,"description":71,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":72,"categories":73,"keywords":74,"publishedAt":36},"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",[],[75,76,21,32,77,78,79,80,25,81,82,83],"tools spin sync","Tools","verify","model","models","name","re","source","source code",{"skillNo":85,"name":86,"nameZh":6,"description":87,"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":36},"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",[],[91,78,76,92,93,94,95,96,97,98,99],"tools spin model","system","formal verification","number","for","prove","new","create","verification",{"skillNo":101,"name":102,"nameZh":6,"description":103,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":104,"categories":105,"keywords":106,"publishedAt":36},"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",[],[107,108,76,109,99,110],"tools creusot install","install","rust","tool",{"skillNo":112,"name":113,"nameZh":6,"description":114,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":115,"categories":116,"keywords":117,"publishedAt":36},"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",[],[118,76,119,28,29,120,121,99,122,93,123,124,125],"tools creusot init","init","components","prepare","use","cargo","manager","Existing",{"skillNo":127,"name":128,"nameZh":6,"description":129,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":130,"categories":131,"keywords":132,"publishedAt":36},"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",[],[133,134,108,76,95,125,135,136,99,137],"tools creusot coq install","Coq","as","installation","add",{"skillNo":139,"name":140,"nameZh":6,"description":141,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":142,"categories":143,"keywords":144,"publishedAt":36},"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",[],[76,145,146,25,80,147,77,148,149],"tools creusot annotate interfaces","annotate","properties","component","interface"]