infernoflow
v0.10.5
Published
The forge for liquid code — keep capabilities, contracts, and docs in sync.
Maintainers
Readme
🔥 infernoflow
The forge for liquid code — keep capabilities, contracts, and docs in sync with your codebase.
What it does
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 changesInstall
npm install -g infernoflow
# or use without installing:
npx infernoflow initQuick Start
# 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-gateAdopt Existing Project
Use 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.
Recommended Workflow
# 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 checkTeam SOP (Developer Workflow)
Use 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.
Commands
| 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 |
Options
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 resultinfernoflow suggest — AI-powered updates
When 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.
infernoflow implement — code-agent execution prompts
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
Troubleshooting
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
Why infernoflow?
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.
CI Integration
# .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 }}Release Checklist
npm test
npm pack --dry-run
node bin/infernoflow.mjs --help
node bin/infernoflow.mjs check --helpThen bump version and publish.
License
MIT
