The forge for liquid code — keep capabilities, contracts, and docs in sync with your codebase.
infernoflow ensures that when your code changes, your capability contracts and documentation stay in sync. It prevents "semantic drift" — where code evolves but no one knows what the system can actually do.
inferno/
├── contract.json ← what your system promises to do
├── capabilities.json ← registry of each capability
├── scenarios/ ← test scenarios covering each capability
└── CHANGELOG.md ← history of capability changes
npm install -g infernoflow
# or use without installing:
npx infernoflow init# 1. Scaffold in your project root:
npx infernoflow init
# 2. See your contract health:
infernoflow status
# 3. When you add a feature, let AI update the docs:
infernoflow suggest "added email notifications and user profiles"
# 4. Validate everything:
infernoflow check
# 5. In CI / pre-push hook:
infernoflow doc-gateUse this when your project already has code and you want InfernoFlow to bootstrap from current behavior.
# from existing project root
infernoflow init --adoptNon-interactive adoption:
infernoflow init --adopt --yesOverride detected stack during adoption:
infernoflow init --adopt --lang ts --framework angular --project-type frontendJSON report for CI/logging:
infernoflow init --adopt --yes --report-jsonJSON-only output (clean machine output, no text logs):
infernoflow init --adopt --yes --report-json-onlyHuman-only output (visual report only, no JSON block):
infernoflow init --adopt --yes --report-human-onlyWhat adoption creates:
inferno/contract.json(inferred capability baseline)inferno/capabilities.json(inferred registry)inferno/scenarios/adoption_baseline.json(coverage baseline)inferno/adoption_profile.json(detected components, display fields, external libraries, UI layout, styling hints)inferno/context-state.json(saved development profile: language/framework/project type)inferno/CHANGELOG.md(adoption entry)
Safety:
- Existing
inferno/is not overwritten unless--forceis provided. - Adoption prints an inferred capability report with source-file hints and confidence.
# start a feature
infernoflow context --intent "add search to tasks" --working "frontend search UX"
# generate implementation prompt(s) for coding agent
infernoflow implement "add server-side task search endpoint" --mode both
# build code changes
# sync inferno contract with AI assistance
infernoflow suggest "added task search by title and due date"
# verify no drift
infernoflow status
infernoflow checkUse this checklist for every feature branch:
- Set intent
infernoflow context --intent "what feature is being built" --working "current slice"- Build code
- Implement UI/API/tests as usual.
- Sync contract with
suggest
infernoflow suggest "plain-language description of what changed"- Paste generated prompt into your AI.
- Paste AI JSON back into terminal.
- Approve with
yonly after preview looks correct.
- Validate before commit
infernoflow status
infernoflow check- CI-safe checks
infernoflow status --json
infernoflow check --json
infernoflow doc-gate --json- Definition of done
- Capability changes are reflected in
inferno/contract.json. - New/changed capabilities exist in
inferno/capabilities.json. - Scenario coverage updated under
inferno/scenarios/. inferno/CHANGELOG.mdupdated under## Unreleased.infernoflow checkpasses.
| Command | Description |
|---|---|
infernoflow init |
Interactive scaffold — creates inferno/ in your project |
infernoflow status |
At-a-glance health of your contract |
infernoflow suggest |
Generate an AI prompt, apply capability updates |
infernoflow implement |
Generate implementation prompts for coding agents |
infernoflow check |
Full validation: contract, capabilities, scenarios, changelog |
infernoflow doc-gate |
Fails if code changed but docs weren't updated |
infernoflow context |
Build/persist AI session context for this project |
infernoflow init --force # overwrite existing files
infernoflow init --yes # skip prompts, use defaults
infernoflow init --adopt # infer baseline from existing project
infernoflow init --adopt --lang ts --framework react --project-type frontend
infernoflow init --adopt --report-human-only
infernoflow suggest "..." # describe what changed
infernoflow implement "..." --mode both
infernoflow implement "..." --mode cursor
infernoflow implement "..." --mode generic
infernoflow implement "..." --mode both --copy
infernoflow check --json # machine-readable output for CI
infernoflow check --skip-doc-gate
infernoflow status --json # machine-readable status summary
infernoflow doc-gate --json # machine-readable doc-gate resultWhen you add a feature, just describe it in plain language. infernoflow generates a prompt you can paste into any AI (Claude, ChatGPT, Copilot, Cursor, etc.), then applies the suggested changes automatically.
infernoflow suggest "added payment processing and invoice generation"What happens:
- infernoflow reads your current contract state
- Generates a structured prompt with full context
- You paste it into your AI of choice
- Paste the JSON response back
- infernoflow previews the changes and asks for confirmation
- On approval — updates
contract.json,capabilities.json,scenarios/, andCHANGELOG.md
Example output:
Proposed Changes
Summary: Added payment processing and invoice generation functionality.
+ New capabilities:
ProcessPayment — Process Payment
GenerateInvoice — Generate Invoice
~ Scenario updates:
[update] happy_path.json
📝 Changelog: - Add payment processing and invoice generation capabilities.
Apply these changes? (y/n)
Works with any AI — Claude, ChatGPT, GitHub Copilot, Cursor, or your own setup.
Generate coding prompts from your project context and inferno contract:
infernoflow implement "add pagination to tasks" --mode bothModes:
--mode cursor: Cursor-specific coding prompt--mode generic: generic prompt for any coding agent--mode both: print both sections (default)--copy: copy selected prompt output to clipboard
Recommended chain:
infernoflow context --intent "..."infernoflow implement "..."- run the coding agent and apply code changes
infernoflow suggest "..."infernoflow check
Unknown command: suggest:- Run
infernoflow --helpand confirmsuggestappears. - If using
npx, force a specific version:npx infernoflow@latest --help.
- Run
infernoflow: command not found:- Use
npx infernoflow ...or install globally:npm install -g infernoflow.
- Use
npm publishfails with existing version:- Bump version first (
npm version patch|minor|major) then publish.
- Bump version first (
statusorcheckfails due to missing inferno files:- Run
infernoflow initat project root.
- Run
- Windows/Git Bash path confusion:
- Prefer
node bin/infernoflow.mjs --helpfrom package root for local debugging.
- Prefer
The problem: AI-assisted development moves fast. Code changes daily. But what does the system actually do? What changed? What's covered?
The metaphor: A forge (כיבשן). Metal becomes liquid — flexible, shapeable. The forge is the controlled environment where that change happens safely, with molds (contracts) and tempering (validation).
The principle: Liquid where you want flexibility. Solid where you need safety.
# .github/workflows/ci.yml
- name: infernoflow check
run: npx infernoflow check --json
env:
BASE_SHA: ${{ github.event.pull_request.base.sha }}
HEAD_SHA: ${{ github.event.pull_request.head.sha }}npm test
npm pack --dry-run
node bin/infernoflow.mjs --help
node bin/infernoflow.mjs check --helpThen bump version and publish.
MIT