Without Assura
- Agent changes 18 files
- Hooks fail after the batch
- Agent rushes a broad refactor
- Commit passes with debt
Early warning signals for AI-assisted work
AI agents change projects faster than teams can review them. Assura turns structure, docs, references, and branch changes into early warnings before drift becomes failed hooks, broken CI, or rushed cleanup refactors.
$ assura reviewProject status: failBranch 1 file | +3/-0 lines | 1 commitWorktree 1 modified | 1 untracked | +2/-0 Needs attention! apps/web/src/ file naming 1 violation Next assura check --format agent . The problem
Teams layer naming linters, code linters, custom scripts, hooks, CI, and convention docs. Each tool sees a slice. Agents often hit the combined wall only after a large batch of work, when the pressure is to make the commit pass instead of choosing the right repair.
A new helper lands in the wrong folder, docs reference an old path, or generated output escapes its boundary.
Git hooks fire after the batch, so the agent optimizes for a green commit instead of evaluating the right refactor.
A fix that could have moved one file becomes a wide patch that passes checks but leaves structural debt.
The command model
Review keeps agents informed while work is moving. Check makes the final policy decision.
assura review Compare the branch and worktree, rank attention, and show the next useful action without blocking the loop.
assura check Evaluate the configured project contract and return a deterministic pass or fail for hooks and CI.
assura agent onboard assura explain <path> Config to feedback
Assura applies one language-agnostic project policy from the root down. Agents see which paths fit, which rule failed, and the concrete threshold they crossed while the repair is still small.
rules: # Reused at root and package level. agent-doc: max_lines: 160 severity: low message: See docs/agents.md. # Applied to every package. workspace: AGENTS.md: exists:1 | $agent-doc1 package.json: exists:1structure: # Project entrypoints. AGENTS.md: exists:1 | $agent-doc1 README.md: exists:1 # Repeat the package contract. packages/: ./*/: $workspace2 # Source defaults at every depth. ./**/: .ts: kebab-case | max_lines:5003 project/top-down policy AGENTS.md1 required filepackages/core/2 workspace contractAGENTS.md1 required guidancepackage.jsonrequired manifestsrc/recursive defaultsuser-menu.ts3 184 / 500 linesBadName.ts3 expected kebab-casecheckout-flow.ts3 537 / 500 linesThe complete policy adds project-local skills, closed-directory boundaries, directory-health limits, optional apps, and generated-output exclusions.
Open the complete monorepo policyWhere it fits
Assura does not replace linters, hooks, CI, or docs. It covers the language-agnostic signals they leave scattered: line counts, structure, docs, references, reusable rules, and repair guidance.
| Tool | Good at | Assura adds |
|---|---|---|
| Language linters | Details inside source files for one language or runtime. | One fast language-agnostic policy for line limits, structure, Markdown, config, generated files, and agent guidance. |
| LS-Lint | Fast filesystem naming rules. | File-content checks, reusable policy layers, rule-specific repair guidance, agent output, and warm sessions. |
| Pre-commit | Running local gates after a batch of work. | Earlier project-review signals and the same bounded policy at the eventual gate. |
| CI | Authoritative post-push validation. | Local branch and worktree context before the failure leaves the machine. |
| Custom scripts | One-off project policy and bespoke checks. | Shared configuration, one report shape, reusable rules, lifecycle integration, and performance discipline. |
| Convention docs | Explaining project intent to people and agents. | Deterministic findings with the path, rule, and concrete repair context. |
Top down first
Start with broad, language-agnostic health and safety. Then attach language or domain-specific checks only where file contents need deeper validation.
New top-level paths, folder growth, required files, naming drift, and generated-output boundaries.
Files changed since base, line churn, untracked paths, renames, commits, and hot directories.
Docs, references, agent guidance, skill indexes, stale links, and unchecked content models.
Project-specific and language-specific checks attach after the broad project layer is stable.
Watch, warn, gate
Assura separates advisory signals from merge blockers, so agents get timely feedback without turning every observation into a hard stop.
Run bounded advisory feedback during supported agent events without blocking the working loop.
Show advisory and changed-path findings before the branch reaches its merge gate.
Block only the serious configured policy violations that should not land.
Agent-ready onboarding
Assura does not pretend unchecked behavior passed. It tells the agent what is active, what is inactive, and which human decisions are still needed before adding project-specific rules.
$ assura agent onboard . --agent auto --format json Detect the project, materialize compatible rules into project-owned configuration, run local verification, and leave conflicts or uncertain conventions as explicit questions.
Fast enough for the loop
Assura is designed to run while work is happening, not only after work is done. It starts as fast structural linting and grows into an incremental project signal layer.
Find changed paths, line churn, untracked files, and the source branch first.
Run cheap project-shape checks where edits can actually change the answer.
Layer markdown, frontmatter, links, and project-context checks when they are relevant.
Run deeper custom or language-specific checks when the workflow moves toward commit or merge.
Start small