.claude/skills/speckit-sync-propose/SKILL.md
Propose resolutions for detected drift. AI generates spec updates or code changes.
npx skillsauth add pradeepmouli/zod-to-form speckit-sync-proposeInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Generate resolution proposals for each drift item. The AI analyzes each divergence and proposes either a spec update (backfill) or code change (align).
$ARGUMENTS
Run speckit.sync.analyze first to generate the drift report.
Read the drift report:
.specify/sync/drift-report.jsonRead the drift report from the previous analysis. If it doesn't exist, instruct the user to run speckit.sync.analyze first.
Analyze the drift and determine resolution direction:
Recommend when:
Generate:
Recommend when:
Generate:
Flag when:
Generate:
Propose a new spec:
Determine:
Propose accordingly.
Output format:
# Drift Resolution Proposals
Generated: [timestamp]
Based on: drift-report from [timestamp]
## Summary
| Resolution Type | Count |
|-----------------|-------|
| Backfill (Code → Spec) | X |
| Align (Spec → Code) | X |
| Human Decision | X |
| New Specs | X |
| Remove from Spec | X |
## Proposals
### Proposal 1: [spec-id]/[requirement]
**Direction**: BACKFILL | ALIGN | HUMAN_DECISION
**Current State**:
- Spec says: "[spec text]"
- Code does: "[actual behavior]"
**Proposed Resolution**:
[For BACKFILL: new spec text]
[For ALIGN: code change description]
[For HUMAN: questions and options]
**Rationale**: [why this direction]
**Confidence**: HIGH | MEDIUM | LOW
**Action**:
- [ ] Approve
- [ ] Reject
- [ ] Modify
---
### Proposal 2: New Spec for [feature]
**Direction**: NEW_SPEC
**Feature**: [feature name]
**Location**: [code path]
**Draft Spec**:
# Feature Specification: [title]
## User Scenarios
### User Story 1 - [story]
[generated from code behavior]
## Requirements
- **FR-001**: [extracted from code]
**Confidence**: MEDIUM
**Action**:
- [ ] Approve and create spec
- [ ] Reject
- [ ] Modify
Write to:
.specify/sync/proposals.md (human-readable).specify/sync/proposals.json (machine-readable)When run with --interactive, present each proposal one at a time and prompt for approval:
Proposal 1/15: spec-011/FR-001
Direction: BACKFILL (Code → Spec)
Spec says: "one row per document"
Code does: "supports split transactions with multiple rows"
Proposed update:
- FR-001: System MUST append one or more rows per extracted document.
For split transactions, multiple rows share a LinkID.
Confidence: HIGH
[A]pprove / [R]eject / [M]odify / [S]kip / [Q]uit?
/speckit.sync.propose
/speckit.sync.propose --interactive
/speckit.sync.propose --strategy backfill-all
tools
Use when working with zod-to-form (core, react, cli, codegen, vite).
tools
Vite plugin for zod-to-form — transforms ?z2f imports into generated form components and optionally replaces <ZodForm> JSX call sites with generated components at build time Use when: You want `import SignupForm from './signup.schema?z2f'` to Just Work in a.... Also: vite, vite-plugin, zod, zod-v4, codegen, forms, form-generation, schema-driven, react-hook-form, build-plugin, jsx-transform.
development
Runtime <ZodForm> renderer for Zod v4 schemas Use when: You need form rendering in storybook, playgrounds, or low-traffic admin UIs —.... Also: zod, zod-v4, react, forms, form-generation, react-hook-form, schema-driven, dynamic-forms, form-renderer, hookform-resolver, zod-form-renderer.
development
Schema walker and processor registry for Zod v4 form generation Use when: You want per-field validation instead of whole-form validation. Also: zod, zod-v4, forms, form-generation, schema, schema-walker, processor-registry, react-hook-form, schema-driven, form-schema, zod-registry.