{"_id":"@abdoar/apex-feature-kit","name":"@abdoar/apex-feature-kit","dist-tags":{"latest":"0.1.2"},"versions":{"0.1.2":{"name":"@abdoar/apex-feature-kit","version":"0.1.2","description":"Feature-Driven Development CLI for AI-agent execution","main":"dist/index.js","bin":{"apex-feature-kit":"dist/index.js"},"scripts":{"build":"tsc","dev":"tsx src/index.ts","prepublishOnly":"npm run build"},"keywords":["fdd","feature-driven","cli","ai","agent"],"author":{"name":"AbdoAR"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/ABDO-AR/apex-feature-kit.git"},"homepage":"https://github.com/ABDO-AR/apex-feature-kit#readme","bugs":{"url":"https://github.com/ABDO-AR/apex-feature-kit/issues"},"dependencies":{"chalk":"^5.6.2","commander":"^14.0.3","fs-extra":"^11.3.5","js-yaml":"^4.1.1","zod":"^4.4.3"},"devDependencies":{"@types/fs-extra":"^11.0.4","@types/js-yaml":"^4.0.9","@types/node":"^25.7.0","tsx":"^4.21.0","typescript":"^6.0.3"},"_id":"@abdoar/apex-feature-kit@0.1.2","gitHead":"536ba08775939caabc496ee8f730de3333946900","types":"./dist/index.d.ts","_nodeVersion":"22.17.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-WtZWAln+p5hRy0vpiUiBiJa5j2cRK5RAee7rUXctfdh1BOYpYhJpov791ZtX4De87Hxjq2XLLsEXws3GfZYDZA==","shasum":"f9b4a98eeed09da3345eeb0de70c5bc330528d58","tarball":"https://registry.npmjs.org/@abdoar/apex-feature-kit/-/apex-feature-kit-0.1.2.tgz","fileCount":44,"unpackedSize":91252,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIE5FaOM/3QyCptRjZtxSM2b7gUGRJcDfOTTYRLbHHpsyAiEAxoZgVc5xdAdMJjJWKZxNx10jUbshlzo97TNCqbG1Ico="}]},"_npmUser":{"name":"abdoar","email":"arcompany000@gmail.com"},"directories":{},"maintainers":[{"name":"abdoar","email":"arcompany000@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/apex-feature-kit_0.1.2_1778600262909_0.8706846157371526"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-12T15:37:42.818Z","0.1.2":"2026-05-12T15:37:43.050Z","modified":"2026-05-12T15:37:43.216Z"},"maintainers":[{"name":"abdoar","email":"arcompany000@gmail.com"}],"description":"Feature-Driven Development CLI for AI-agent execution","homepage":"https://github.com/ABDO-AR/apex-feature-kit#readme","keywords":["fdd","feature-driven","cli","ai","agent"],"repository":{"type":"git","url":"git+https://github.com/ABDO-AR/apex-feature-kit.git"},"author":{"name":"AbdoAR"},"bugs":{"url":"https://github.com/ABDO-AR/apex-feature-kit/issues"},"license":"MIT","readme":"# Apex Feature Kit\n\n> by [Abdo AR](https://abdoar.com)\n\n[![npm version](https://img.shields.io/npm/v/@abdoar/apex-feature-kit.svg)](https://www.npmjs.com/package/@abdoar/apex-feature-kit) [![license](https://img.shields.io/npm/l/@abdoar/apex-feature-kit.svg)](https://github.com/ABDO-AR/apex-feature-kit/blob/main/LICENSE)\n\nFeature-Driven Development CLI for AI-agent execution — empowering startups to ship production-ready features, fast.\n\n---\n\n## Overview\n\nFeature-Driven Development (FDD) is a structured approach to building software where every piece of work is defined as a self-contained feature spec before a single line of code is written. Apex Feature Kit brings this discipline to AI-agent workflows: instead of prompting an AI with vague instructions and hoping for the best, you give it a precise, exhaustive blueprint that any developer — junior or senior, human or AI — can pick up and implement immediately.\n\nThe CLI itself is intentionally minimal. Two commands: `init` to scaffold the `.features/` directory and inject slash commands into your IDE, and `sync` to auto-complete features when all tasks are verified done. Everything else — creating specs, implementing features, verifying implementations, updating requirements — is handled by the AI agent through slash commands inside your editor.\n\nWhy does this exist? Because startups need to move fast without sacrificing quality. When AI agents write code from unstructured prompts, the result is unpredictable. FDD gives the agent a structured, self-contained spec so every feature is spec'd, implementable, and verifiable by anyone. No ambiguity, no guesswork — just a clear path from idea to production-ready code.\n\n---\n\n## Quick Start\n\n```bash\nnpm install -g @abdoar/apex-feature-kit\napex-feature-kit init all\n```\n\nThis scaffolds the `.features/` directory and injects slash commands into both Kilo Code and Cursor. Your project will look like this:\n\n```\nyour-project/\n├── .features/\n│   ├── tree.yaml           # Master index of all features\n│   ├── instructions.md     # AI protocol & spec format rules\n│   └── specs/              # Feature spec files live here\n├── .kilo/commands/         # Slash commands for Kilo Code\n│   ├── new-feature.md\n│   ├── implement-feature.md\n│   ├── verify-feature.md\n│   └── update-feature.md\n└── .cursor/commands/       # Slash commands for Cursor\n    ├── new-feature.md\n    ├── implement-feature.md\n    ├── verify-feature.md\n    └── update-feature.md\n```\n\n---\n\n## CLI Commands\n\n### `init <platform>`\n\nScaffolds the `.features/` directory and injects slash commands into the target IDE platform.\n\n**Platforms:**\n\n| Platform | Directory | Description |\n|---|---|---|\n| `kilo` | `.kilo/commands/` | Kilo Code IDE |\n| `cursor` | `.cursor/commands/` | Cursor IDE |\n| `all` | Both | Inject into both platforms |\n\n**Idempotent:** Running `init` multiple times will not overwrite existing files. If a slash command or config file already exists, it is skipped.\n\n```bash\napex-feature-kit init kilo\napex-feature-kit init cursor\napex-feature-kit init all\n```\n\n### `sync`\n\nScans all spec files in `.features/specs/`, cross-references them with `.features/tree.yaml`, and auto-completes any feature where all implementation tasks are marked `[x]`. This is the only mechanism that sets `completed_at` — the AI never writes it manually.\n\n```bash\napex-feature-kit sync\n```\n\nOutput:\n\n```\n════════════════════════════════════\n  APEX FEATURE KIT — SYNC\n════════════════════════════════════\n\n  Synced 5 features\n  ✓ 2 completed  |  ○ 3 in progress  |  +1 new spec indexed\n```\n\n---\n\n## Slash Commands\n\nThese are AI agent commands invoked inside your IDE's chat, not terminal commands. They live in `.kilo/commands/` or `.cursor/commands/` and are discovered automatically by the IDE.\n\n| Command | Description |\n|---|---|\n| `/new-feature` | Create a comprehensive feature spec from context and codebase analysis |\n| `/implement-feature` | Build the feature from its spec, marking tasks complete as you go |\n| `/verify-feature` | Audit the implementation against the spec — find gaps and regressions |\n| `/update-feature` | Modify an existing spec's details, files, schema, or tasks |\n\nUsage: type the command followed by your context. The AI never asks for additional input — it extracts everything from your message.\n\n```text\n/new-feature I need an auth system with OAuth2 support for Google and GitHub\n/implement-feature auth system\n/verify-feature auth system\n/update-feature auth system — add password reset flow\n```\n\n---\n\n## FDD Workflow\n\n1. **Create** — `/new-feature {context}` — The AI analyzes your codebase, then writes a comprehensive spec covering files, schemas, APIs, dependencies, and ordered implementation tasks. The spec is self-contained: a junior developer or a different AI can implement the feature by reading it alone.\n\n2. **Implement** — `/implement-feature {context}` — The AI reads the spec and builds the feature in task order, marking each `[x]` as it's verified.\n\n3. **Verify** — `/verify-feature {context}` — The AI audits the implementation against the spec: are all files created? Do types match? Do endpoints match? Are there regressions? Falsely completed tasks get unmarked.\n\n4. **Update** — `/update-feature {context}` — Modify the spec when requirements change. The AI re-analyzes the codebase to keep the spec grounded in reality.\n\n5. **Complete** — `apex-feature-kit sync` — The CLI scans specs and auto-stamps `completed_at` in `tree.yaml` when all tasks are checked. This is the only way completion is recorded — no manual edits.\n\n---\n\n## Directory Structure\n\nAfter running `apex-feature-kit init all`:\n\n```\n.features/\n├── tree.yaml              # Master index — tracks all features, IDs, and completion status\n├── instructions.md        # AI protocol — rules for how the AI operates within FDD\n└── specs/                 # Feature spec files (YYYYMMDDHHmm-slug-name.md)\n\n.kilo/commands/            # Slash commands for Kilo Code\n├── new-feature.md\n├── implement-feature.md\n├── verify-feature.md\n└── update-feature.md\n\n.cursor/commands/          # Slash commands for Cursor\n├── new-feature.md\n├── implement-feature.md\n├── verify-feature.md\n└── update-feature.md\n```\n\nSpec filenames use a timestamp-prefix convention to prevent merge conflicts and ensure sortability: `202605121730-auth-system.md`, `202605140930-user-profile-page.md`.\n\n---\n\n## Feature Spec Format\n\nEvery feature spec follows the same structure — no exceptions. A spec is a self-contained blueprint that anyone can implement from:\n\n| Section | Purpose |\n|---|---|\n| **Overview** | What the feature does and why — plain English |\n| **Technical Context** | Tech stack, project structure, existing patterns — grounded in the real codebase |\n| **Files to Create** | Every new file with full path and purpose |\n| **Files to Modify** | Every existing file with specific changes |\n| **Data Schema** | Database models, TypeScript types, interfaces |\n| **API / Interface** | Endpoints, function signatures, public APIs |\n| **Dependencies** | New packages needed (only what's not already installed) |\n| **Implementation Tasks** | Ordered checklist grouped by phase — specific enough for a junior developer |\n| **Definition of Done** | Quality gates that must all pass before the feature is complete |\n| **Notes** | Constraints, decisions, pitfalls |\n\nThe AI writes specs by first analyzing the codebase, then producing content that reflects the actual project — not assumptions. No placeholder sections, no vague tasks.\n\n---\n\n## Development\n\n```bash\nnpm run build          # Compile TypeScript to dist/\nnpm run dev            # Run via tsx (no compile step)\nnpm link               # Global symlink for local testing\n```\n\nAfter `npm link`, the `apex-feature-kit` command is available globally. Test against a sample project:\n\n```bash\nmkdir /tmp/test-project && cd /tmp/test-project\nnpm init -y\napex-feature-kit init all\napex-feature-kit sync\n```\n\n---\n\n## Author & Links\n\n**Abdo AR** — Co-Founder & CTO | Software Engineer & UI/UX Expert\n\nEmpowering startups to build market-ready digital products — fast, scalable, and cost-effective.\n\n- [abdoar.com](https://abdoar.com)\n- [GitHub](https://github.com/ABDO-AR)\n- [LinkedIn](https://www.linkedin.com/in/arfathielsayed/)\n- [Upwork](https://www.upwork.com/freelancers/abdoa130) — Top Rated (top 10%)\n\n---\n\n## License\n\n[MIT](https://github.com/ABDO-AR/apex-feature-kit/blob/main/LICENSE)\n","readmeFilename":"README.md","_rev":"1-374cfed100305b86657ec07fd2a10a31"}