
Research
/Security News
737 Chrome VPN Extensions Linked to Brand Impersonation and Browser Traffic Redirection
The campaign amassed more than 75,000 installs by targeting Russian-speaking users seeking access to blocked services.
@imix-js/taproot
Advanced tools
AI-driven specs, enforced at commit time. Code without traceability doesn't merge.
AI-driven specs, enforced at commit time. Code without traceability doesn't merge.
AI coding agents generate code fast — but six months later, nobody knows why a module exists, who asked for it, or whether it's still needed. The requirement lived in a chat window. The chat window is gone.
Taproot keeps requirements as first-class files in your repo. The agent writes the spec, writes the code, and git refuses to accept one without the other.
npx @imix-js/taproot init # installs agent adapter + pre-commit hook
Then in your agent:
/tr-ineed user authentication # describe a requirement → spec written + placed
/tr-implement taproot/auth/ # implement it: code + tests + traceability, committed
That's the loop. Spec first, code second, git enforces both.
Planning a batch of work:
/tr-plan # build a prioritised plan from backlog + unimplemented specs
/tr-plan-execute # run through it — autonomous items execute; HITL items pause for you
Describe ten requirements, review the plan, walk away. When you return, everything autonomous is done and the human decisions are waiting.
/tr-guide ← onboarding walkthrough
/tr-status ← health dashboard: coverage, orphans, stale specs
/tr-discover ← reverse-engineer an existing codebase into taproot
Full workflow guide: docs/workflows.md
taproot init installs a pre-commit hook. It runs automatically on every git commit — no commands to invoke:
| Commit type | Gate | What it checks |
|---|---|---|
Declaring a new impl (impl.md only) | DoR — Definition of Ready | Behaviour spec is specified; required sections present; custom conditions in settings.yaml |
| Committing source code | DoD — Definition of Done | Tests pass; all configured conditions resolved and recorded |
Committing specs (intent.md, usecase.md) | Truth check | Staged specs are consistent with taproot/global-truths/ |
Code that fails these checks doesn't reach the repo.
Already know what Intent, Behaviour, and Implementation mean? Jump to Why it matters ↓
Intent — the business goal behind a feature, written from a user perspective.
Example: password-reset — Allow users to recover access to their account
Behaviour — one observable, testable thing the system does for a specific actor.
Example: request-reset — User submits their email; system sends a reset link
Implementation — the code that satisfies a behaviour, with a traceable link back to the spec.
Example: email-trigger/impl.md lists the source files and the commit that built them
Global truth — a project-wide fact enforced at every commit (business rule, entity definition, project convention), stored in taproot/global-truths/.
Example: prices are always exclusive of VAT — a spec that contradicts this is blocked before it merges
Backlog — a lightweight scratchpad for ideas and deferred work captured mid-session, stored in taproot/agent/backlog.md — separate from the requirement hierarchy.
Example: /tr-backlog "consider a caching layer" captures the thought without interrupting flow
taproot/global-truths/taproot sync-check flags source files modified after their spec was last reviewedHow requirements are stored:
taproot/
├── password-reset/ ← Intent: why this exists and for whom
│ ├── intent.md
│ └── request-reset/ ← Behaviour: what the system does
│ ├── usecase.md
│ └── email-trigger/ ← Implementation: how it's built
│ └── impl.md
Plain Markdown files, no database, git-versioned with your code. Any agent that can read files can use taproot.
Taproot's own requirements are managed with Taproot. taproot/OVERVIEW.md shows 18 intents, 53 behaviours, and 53 implementations — all complete — covering everything from validation rules to agent skill architecture to this README.
It's a working example of what a mature hierarchy looks like in practice.
Taproot works across repository boundaries. If your system spans multiple repos — a platform repo plus plugin repos, a coordination repo plus service repos — you can define specs in one place and implement them independently in each repo.
A link file in the linking repo points to the spec that lives elsewhere:
# Link: Plugin Login
**Repo:** https://github.com/org/platform-repo
**Path:** taproot/specs/auth/plugin-login/usecase.md
**Type:** behaviour
Each repo's taproot coverage runs independently. The linking repo counts the behaviour as implemented via its local impl.md; the source repo marks it delegated. Both stay clean with no duplication.
Shared global truths (API contracts, domain models) work the same way — a truth link in taproot/global-truths/ is enforced at commit time, even when the truth file lives in another repo.
Use /tr-link to set up either side of the two-sided workflow interactively.
Full documentation: docs/cross-repo.md
Taproot ships three optional quality modules — installable skill packages that give agents the conventions and checklists needed for consistent, domain-appropriate implementations.
| Module | Activation | What it captures |
|---|---|---|
| User experience | /tr-ux-define | 10 UX aspects: orientation, flow, feedback, input, presentation, language, accessibility, adaptation, consistency, visual |
| Security | /tr-security-define | 5 enforcement layers: coding rules, local tooling, CI/CD gates, deployment hardening, periodic review |
| Architecture | /tr-arch-define | 7 structural aspects: interfaces, code reuse, dependencies, module boundaries, error handling, test structure, naming |
Each module writes conventions to taproot/global-truths/ and wires an optional DoD condition so agents verify compliance at every implementation commit.
Opt in per project — declare which modules apply in taproot/settings.yaml, then run taproot update:
modules:
- user-experience
- security
- architecture
Only declared module skills are installed. Undeclared modules have no effect.
Full documentation: docs/modules.md
MIT
FAQs
AI-driven specs, enforced at commit time. Code without traceability doesn't merge.
The npm package @imix-js/taproot receives a total of 38 weekly downloads. As such, @imix-js/taproot popularity was classified as not popular.
We found that @imix-js/taproot demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Research
/Security News
The campaign amassed more than 75,000 installs by targeting Russian-speaking users seeking access to blocked services.

Company News
Open source maintainers are under more pressure than ever. We're raising our open source program from the Team plan to the Business plan, free.

Security News
The supply chain control that delays freshly published gems now covers lockfile generation and gem vendoring in Ruby projects.