framework/web_development/.kimi/skills/acfm-spec-workflow/SKILL.md
Initialize and manage AC Framework spec-driven workflows using acfm CLI. Use when setting up spec workflows, checking project status, creating changes, or understanding the .acfm/ vs openspec/ directory structures. Essential first step before using any OpenSpec skills.
npx skillsauth add b4san/ac-framework acfm-spec-workflowInstall 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.
Guide for initializing and managing spec-driven development workflows using the AC Framework CLI (acfm).
Use this skill when:
.acfm/ or openspec/ directories# Check if project is initialized
acfm spec status --json
# Initialize new project (creates .acfm/)
acfm spec init
# Create a new change
acfm spec new my-feature --json
# Get instructions for next artifact
acfm spec instructions proposal --change my-feature --json
.acfm/ directoryproject-root/
├── .acfm/ # NEW: Default spec directory
│ ├── config.yaml # Project configuration
│ ├── specs/ # Shared specs
│ └── changes/ # Active changes
│ ├── archive/ # Archived changes
│ └── my-feature/ # Individual change
│ ├── .openspec.yaml
│ ├── proposal.md
│ ├── design.md
│ ├── tasks.md
│ └── specs/
openspec/ directoryproject-root/
├── openspec/ # LEGACY: Still fully supported
│ ├── config.yaml
│ ├── specs/
│ └── changes/
Priority: CLI automatically uses .acfm/ if it exists, otherwise falls back to openspec/.
Always start by checking if the project is initialized:
acfm spec status --json
If not initialized ("initialized": false):
If initialized ("initialized": true):
dirName field (either .acfm or openspec)For new projects:
acfm spec init
This creates:
.acfm/config.yaml - Project configuration.acmf/specs/ - Shared specifications.acfm/changes/ - Active changes directoryLegacy support: If the project already has openspec/, it will be detected automatically. No need to migrate unless desired.
acfm spec new <change-name> --json
Example:
acfm spec new user-authentication --json
Output:
{
"changeDir": "/project/.acfm/changes/user-authentication",
"schemaName": "spec-driven",
"artifacts": ["proposal", "specs", "design", "tasks"]
}
Each artifact has specific instructions:
# Get instructions for proposal
acfm spec instructions proposal --change <name> --json
# Get instructions for design
acfm spec instructions design --change <name> --json
# Get instructions for tasks
acfm spec instructions tasks --change <name> --json
# Get apply instructions (when ready to implement)
acfm spec instructions apply --change <name> --json
Monitor progress:
# Status of specific change
acfm spec status --change <name> --json
# List all changes
acfm spec list --json
acfm spec archive <change-name>
acfm spec init [--json] - Initialize spec directoryacfm spec status [--json] - Check initialization statusacfm spec new <name> [--json] - Create new changeacfm spec list [--json] - List all changesacfm spec status --change <name> [--json] - Check change statusacfm spec archive <name> [--json] - Archive completed changeacfm spec instructions <artifact> --change <name> [--json] - Get artifact instructionsacfm spec schemas [--json] - List available schemasacfm spec validate <name> [--json] - Validate change structure# 1. Check status
acfm spec status --json
# 2. Initialize
acfm spec init
# 3. Create first change
acfm spec new initial-setup --json
# 4. Get proposal instructions
acfm spec instructions proposal --change initial-setup --json
# CLI automatically detects openspec/ directory
acfm spec status --json
# Output: { "initialized": true, "dirName": "openspec", ... }
# Create change in openspec/
acfm spec new legacy-feature --json
# Creates: openspec/changes/legacy-feature/
If both .acfm/ and openspec/ exist:
.acfm/ (higher priority).acfm/changes/To use openspec/ temporarily:
mv .acfm/ .acfm-backup/
# Now CLI will use openspec/
--json flag for programmatic parsing.acfm/ or openspec/# Solution
acfm spec init
# Check which directory is being used
acfm spec status --json
# Look at "dirName" field
# List both directories
ls -la .acfm/changes/ 2>/dev/null || echo "No .acfm/"
ls -la openspec/changes/ 2>/dev/null || echo "No openspec/"
# Force use of openspec/ by renaming .acfm/
mv .acfm/ .acfm-backup/
# Or force use of .acfm/ by renaming openspec/
mv openspec/ openspec-backup/
acfm) must be installed.acfm/ (new) and openspec/ (legacy)openspec-new-change skill after initialization to create structured changesopenspec-continue-change to work on existing changesopenspec-apply-change to implement tasksdevelopment
React and Next.js performance optimization guidelines from Vercel Engineering. This skill should be used when writing, reviewing, or refactoring React/Next.js code to ensure optimal performance patterns. Triggers on tasks involving React components, Next.js pages, data fetching, bundle optimization, or performance improvements.
development
Automate the generation and maintenance of unit, integration, and end-to-end tests, as well as test data generation and debugging. Use when writing tests for new features, maintaining existing tests after API/UI changes, generating synthetic test data, or debugging test failures. Essential for ensuring code quality and preventing regressions.
testing
Generate comprehensive test suites ensuring requirements are met. Strategies for Unit, Integration, and E2E testing.
development
Use when encountering any bug, test failure, or unexpected behavior, before proposing fixes