aif-verify
Skill10 starsChanged 6 months agoMITView on GitHub
Verify completed implementation against the plan. Checks that all tasks were fully implemented, nothing was forgotten, code compiles, tests pass, and quality standards are met. Use after "$aif-implement" completes, or when user says "verify", "check work", "did we miss anything".
- Reads credentials
4 other projects use a version of this, 4 of them edited.
Adopted by
Most recently taken up by
- letuhao/lore-weaveedited, first seen Oct 17, 2026
- unxed/f4edited, first seen Oct 8, 2026
- lee-to/ai-factoryedited, first seen Sep 22, 2026
- hightemp/go_computer_use_mcp_serveredited, first seen Mar 21, 2026
Other versions4 projects use a version of this.
Word for word · 0
None found.
Edited · 4
- lee-to/ai-factory★ 1.2k29% same
- unxed/f4★ 26171% same
- letuhao/lore-weave★ 3587% same
- hightemp/go_computer_use_mcp_server★ 288% same
Wrote their own version · 0
None found.
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository59 other files it gives its agents.
- AGENTS.mdAGENTS.md
- site-docs/AGENTS.mdAGENTS.md
- web/AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- docs/CLAUDE.mdCLAUDE.md
- web/CLAUDE.mdCLAUDE.md
- aif-architectureSkill
- aif-best-practicesSkill
- aif-build-automationSkill
- aif-ciSkill
- aif-commitSkill
- aif-distillationSkill
- aif-dockerizeSkill
- aif-docsSkill
- aif-evolveSkill
- aif-exploreSkill
- aif-fixSkill
- aif-groundedSkill
- aif-implementSkill
- aif-improveSkill
- aif-loopSkill
- aif-planSkill
- aif-qaSkill
- aif-referenceSkill
- aif-reviewSkill
- aif-roadmapSkill
- aif-rules-checkSkill
- aif-rulesSkill
- aif-security-checklistSkill
- aif-skill-generatorSkill
- aifSkill
- generate-claudemdSkill
- aif-architectureSkill
- aif-best-practicesSkill
- aif-build-automationSkill
- aif-ciSkill
- aif-commitSkill
- aif-distillationSkill
- aif-dockerizeSkill
- aif-docsSkill
- aif-evolveSkill
- aif-exploreSkill
- aif-fixSkill
- aif-groundedSkill
- aif-implementSkill
- aif-improveSkill
- aif-loopSkill
- aif-planSkill
- aif-qaSkill
- aif-referenceSkill
- aif-reviewSkill
- aif-roadmapSkill
- aif-rules-checkSkill
- aif-rulesSkill
- aif-security-checklistSkill
- aif-skill-generatorSkill
- aifSkill
- aif-verifySkill
- generate-claudemdSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
53 rules. 23 are common, 6 are distinctive, and 24 are very specific to this project.
23
Common
Most of the 4 edited versions we read keep these.
6
Distinctive
This author's own choices. Worth a look.
24
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Common: line 18
Verify that the completed implementation matches the plan, nothing was missed, and the code is production-ready.
- Very specific: line 28
FIRST: Read .ai-factory/config.yaml if it exists to resolve:
- Very specific: line 30
verify_mode: default verification strictness (strict | normal | lenient)
- Very specific: line 38
Treat any unknown value as slug.
- Very specific: line 45
If config.yaml doesn't exist, use defaults:
- Very specific: line 54
Read references/GATE-RESULT-CONTRACT.md for the machine-readable quality gate summary.
- Common: line 55
Treat it as the canonical source for:
- Very specific: line 57
read-only behavior for aif-commit/aif-review/aif-verify,
- Common: line 59
If this contract conflicts with older examples in this file, follow the contract.
- Common: line 101
Read the plan file to understand what was supposed to be implemented
- Very specific: line 103
Read .ai-factory/DESCRIPTION.md (use path from config) for project context (tech stack, conventions)
- Very specific: line 104
Read .ai-factory/ARCHITECTURE.md (use path from config) for dependency and boundary rules (if present)
- Common: line 105
Read rules hierarchy (use paths from config):
- Very specific: line 109
Read .ai-factory/ROADMAP.md (use path from config) for milestone alignment checks (if present)
- Common: line 117
Treat them as project-level overrides for this skill's general instructions
- Very specific: line 118
When a skill-context rule conflicts with a general rule written in this SKILL.md,
- Very specific: line 120
When there is no conflict, apply both: general rules from SKILL.md + project rules from skill-context
- Common: line 121
Do NOT ignore skill-context rules even if they seem to contradict this skill's defaults — they exist because the project's experience …
- Common: line 128
Enforcement: After generating any output artifact, verify it against all skill-context rules.
- Common: line 129
If any rule is violated — fix the output before presenting it to the user.
- Very specific: line 140
If git.enabled = false, skip branch diffing entirely and gather changed files from:
- Very specific: line 163
Use Glob and Grep to find the code that implements it
- Common: line 164
Read the relevant files to confirm the implementation is complete
- Common: line 165
Check that the implementation matches what was described, not just that "something was written"
- Common: line 210
If build fails → report errors with file:line references.
- Common: line 214
If the project has tests and they were part of the plan:
- Common: line 224
If tests fail → report which tests failed and whether they relate to the implemented tasks.
- Common: line 226
If no tests exist or testing was explicitly skipped in the plan → note it but don't fail.
- Common: line 230
If linters are configured:
- Common: line 239
Only lint the changed files to keep output focused.
- Common: line 243
Verify no unused imports were left behind
- Very specific: line 244
Check that new dependencies mentioned in tasks were actually added (package.json, go.mod, requirements.txt, composer.json)
- Common: line 245
Check for missing dependencies (imports that reference packages not in dependency files)
- Common: line 253
Check for discrepancies between what the plan says and what was built:
- Very specific: line 255
Naming: Do variable/function/endpoint names match what the plan specified?
- Common: line 257
API contracts: Do endpoint paths, request/response shapes match the plan?
- Common: line 261
Search for things that should have been cleaned up:
- Common: line 271
Check if the implementation introduced any new config requirements:
- Very specific: line 285
Check if .ai-factory/DESCRIPTION.md reflects the current state:
- Very specific: line 325
If the user wants a standalone rules-only pass, suggest $aif-rules-check.
- Very specific: line 334
Use "blocking": true|false.
- Distinctive: line 343
If you detect that a context artifact is stale, missing, or ambiguous, report it as a drift finding and provide the owner-command …
- Distinctive: line 350
Ask the user a single optional question only if drift was detected and fixing it now would materially improve correctness:
- Very specific: line 407
After the human-readable report and overall status, append exactly one final aif-gate-result fenced JSON block.
- Distinctive: line 428
If issues were found:
- Very specific: line 444
If user agrees, proceed via $aif-fix
- Very specific: line 445
If user declines $aif-fix, continue with direct implementation in this session
- Distinctive: line 449
After fixing, re-run the relevant verification checks to confirm
- Distinctive: line 459
After verification is complete, suggest next steps based on result:
- Very specific: line 461
If unresolved issues remain (accepted or deferred), suggest $aif-fix first
- Very specific: line 462
If all green, suggest security/review/commit flow
- Very specific: line 502
When invoked with --strict:
- Distinctive: line 518
Do not fail strict verification solely because milestone linkage is missing
“Common” is measured: kept by at least 6 in 10 of the 4 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Verify — Post-Implementation Quality Check
Verify that the completed implementation matches the plan, nothing was missed, and the code is production-ready.
This skill is optional — invoked after $aif-implement finishes all tasks, or manually at any time.
Step 0: Load Context
0.0 Load config.yaml
FIRST: Read .ai-factory/config.yaml if it exists to resolve:
- Paths:
paths.description,paths.architecture,paths.rules_file,paths.roadmap,paths.plan,paths.plans,paths.fix_plan,paths.specs, andpaths.rules - verify_mode: default verification strictness (
strict|normal|lenient) - Git:
git.enabled,git.base_branch,git.create_branches - Rules hierarchy: the resolved RULES.md path +
rules.base+ namedrules.<area>entries - Workflow:
workflow.plan_id_format(default:slug) — used by branch-based plan discovery in Step 0.2. Active values:slugandsequential. Whensequential, the resolver globs<paths.plans>/[0-9]{4}_<branch_stem>.mdfirst and falls back to<paths.plans>/<branch_stem>.mdonly if no numbered match is found.timestampanduuidare reserved values and currently behave likeslug. Treat any unknown value asslug.
verify_mode priority:
--strictCLI flag → always usestrict- config.yaml
workflow.verify_mode→ use configured value - Default →
normal
If config.yaml doesn't exist, use defaults:
- Paths:
.ai-factory/for all artifacts - verify_mode:
normal - Rules: RULES.md only
workflow.plan_id_format:slug
0.1 Load Ownership and Gate Contract
- Read
references/CONTEXT-GATES-AND-OWNERSHIP.mdfirst. - Read
references/GATE-RESULT-CONTRACT.mdfor the machine-readable quality gate summary. - Treat it as the canonical source for:
- command-to-artifact ownership,
- read-only behavior for
aif-commit/aif-review/aif-verify, - normal vs strict context-gate thresholds.
- If this contract conflicts with older examples in this file, follow the contract.
0.2 Find Plan File
Same logic as $aif-implement — produce the canonical branch stem before any plans-dir glob so producer and consumers agree by construction.
1. Check current git branch:
git branch --show-current
2. Convert branch to filename stem (git mode only):
branch_stem = current branch with every "/" replaced by "-"
Example: feature/user-auth → feature-user-auth
3. Resolve the plan file using <branch_stem>:
→ When `workflow.plan_id_format = sequential`, glob first
<configured plans dir>/[0-9][0-9][0-9][0-9]_<branch_stem>.md
- 0 matches → fall through to the un-prefixed lookup below
- 1 match → use it
- >1 matches → use the **highest-numbered** match and emit
WARN [aif-verify] multiple sequential plans for <branch>: <list>; using <chosen>
→ Otherwise (default `plan_id_format`, or sequential with no numbered match):
<configured plans dir>/<branch_stem>.md
4. If the branch-based plan is missing or git mode is off:
→ Check whether the configured plans dir contains exactly one `*.md` full-mode
plan (a leading 4-digit prefix counts as a match)
→ If exactly one exists, use it
→ If multiple exist, ask the user to choose or use `@<path>` via `$aif-implement`
5. No full-mode plan → Check the resolved fast plan path
6. No full-mode plan and no resolved fast plan → fall back to standalone verification choicesIf no plan file found:
AskUserQuestion: No plan file found. What should I verify?
Options:
1. Verify last commit — Check the most recent commit for completeness
2. Verify branch diff — Compare current branch against the configured base branch
3. Cancel0.2 Read Plan & Tasks
- Read the plan file to understand what was supposed to be implemented
TaskList→ get all tasks and their statuses- Read
.ai-factory/DESCRIPTION.md(use path from config) for project context (tech stack, conventions) - Read
.ai-factory/ARCHITECTURE.md(use path from config) for dependency and boundary rules (if present) - Read rules hierarchy (use paths from config):
- RULES.md — axioms (universal project rules)
- rules/base.md — project-specific base conventions
- rules.
<area>— area-specific rule entries resolved from config (for examplerules.api,rules.frontend)
- Read
.ai-factory/ROADMAP.md(use path from config) for milestone alignment checks (if present)
Read .ai-factory/skill-context/aif-verify/SKILL.md — MANDATORY if the file exists.
This file contains project-specific rules accumulated by $aif-evolve from patches,
codebase conventions, and tech-stack analysis. These rules are tailored to the current project.
How to apply skill-context rules:
- Treat them as project-level overrides for this skill's general instructions
- When a skill-context rule conflicts with a general rule written in this SKILL.md, the skill-context rule wins (more specific context takes priority — same principle as nested CLAUDE.md files)
- When there is no conflict, apply both: general rules from SKILL.md + project rules from skill-context
- Do NOT ignore skill-context rules even if they seem to contradict this skill's defaults — they exist because the project's experience proved the default insufficient
- CRITICAL: skill-context rules apply to ALL outputs of this skill — including the Verification Report template. If a skill-context rule says "verification MUST check X" or "report MUST include section Y" — you MUST augment the report accordingly. Generating a verification that ignores skill-context rules is a bug.
Enforcement: After generating any output artifact, verify it against all skill-context rules. If any rule is violated — fix the output before presenting it to the user.
0.3 Gather Changed Files
# All files changed during this feature/plan
git diff --name-only <configured-base-branch>...HEAD
# Or if on the base branch / in no-git mode, check recent commits
git diff --name-only HEAD~$(number_of_tasks)..HEADIf git.enabled = false, skip branch diffing entirely and gather changed files from:
- the working tree (if uncommitted changes exist), or
- the recent commit window that corresponds to the implemented tasks.
Store as CHANGED_FILES.
Step 1: Task Completion Audit
Go through every task in the plan and verify it was actually implemented.
For each task:
1.1 Read Task Description
TaskGet(taskId) → Get full description, requirements, acceptance criteria1.2 Verify Implementation Exists
For each requirement in the task description:
- Use
GlobandGrepto find the code that implements it - Read the relevant files to confirm the implementation is complete
- Check that the implementation matches what was described, not just that "something was written"
1.3 Build Checklist
For each task, produce a verification result:
✅ Task #1: Create user model — COMPLETE
- User model created at src/models/user.ts
- All fields present (id, email, name, createdAt, updatedAt)
- Validation decorators added
⚠️ Task #3: Add password reset endpoint — PARTIAL
- Endpoint created at src/api/auth/reset.ts
- MISSING: Email sending logic (task mentioned SendGrid integration)
- MISSING: Token expiration check
❌ Task #5: Add rate limiting — NOT FOUND
- No rate limiting middleware detected
- No rate-limit related packages in dependenciesStatuses:
✅ COMPLETE— all requirements verified in code⚠️ PARTIAL— some requirements implemented, some missing❌ NOT FOUND— implementation not detected⏭️ SKIPPED— task was intentionally skipped by user during implement
Step 2: Code Quality Verification
2.1 Build & Compile Check
Detect the build system and verify the project compiles:
| Detection | Command |
go.mod | go build ./... |
tsconfig.json | npx tsc --noEmit |
package.json with build script | npm run build (or pnpm/yarn/bun) |
pyproject.toml | python -m py_compile on changed files |
Cargo.toml | cargo check |
composer.json | composer validate |
If build fails → report errors with file:line references.
2.2 Test Check
If the project has tests and they were part of the plan:
| Detection | Command |
jest.config.* or vitest | npm test |
pytest | pytest |
go test | go test ./... |
phpunit.xml* | ./vendor/bin/phpunit |
Cargo.toml | cargo test |
If tests fail → report which tests failed and whether they relate to the implemented tasks.
If no tests exist or testing was explicitly skipped in the plan → note it but don't fail.
2.3 Lint Check
If linters are configured:
| Detection | Command |
eslint.config.* / .eslintrc* | npx eslint [changed files] |
.golangci.yml | golangci-lint run ./... |
ruff in pyproject.toml | ruff check [changed files] |
.php-cs-fixer* | ./vendor/bin/php-cs-fixer fix --dry-run --diff |
Only lint the changed files to keep output focused.
2.4 Import & Dependency Check
- Verify no unused imports were left behind
- Check that new dependencies mentioned in tasks were actually added (
package.json,go.mod,requirements.txt,composer.json) - Check for missing dependencies (imports that reference packages not in dependency files)
Step 3: Consistency Checks
3.1 Plan vs Code Drift
Check for discrepancies between what the plan says and what was built:
- Naming: Do variable/function/endpoint names match what the plan specified?
- File locations: Are files where the plan said they should be?
- API contracts: Do endpoint paths, request/response shapes match the plan?
3.2 Leftover Artifacts
Search for things that should have been cleaned up:
Grep in CHANGED_FILES: [T][O][D][O]|[F][I][X][M][E]|HACK|[X][X][X]|TEMP|PLACEHOLDER|console\.log\(.*debug|print\(.*debugReport any found — they might be intentional, but flag them.
3.3 Configuration & Environment
Check if the implementation introduced any new config requirements:
- New environment variables referenced but not documented
- New config files mentioned in code but not created
- Database migrations created but not documented in README/docs
Grep in CHANGED_FILES: process\.env\.|os\.Getenv\(|os\.environ|env\(|getenv\(|config\(Cross-reference with .env.example, .env.local, README, or docs to ensure they're documented.
3.4 DESCRIPTION.md Sync
Check if .ai-factory/DESCRIPTION.md reflects the current state:
- New dependencies/libraries added during implementation → should be listed
- Architecture changes → should be reflected
- New integrations → should be documented
3.5 Context Gates (Architecture / Roadmap / Rules)
Apply the canonical contract from references/CONTEXT-GATES-AND-OWNERSHIP.md.
Evaluate and report each gate explicitly:
- Architecture gate
- Pass: implementation follows documented boundaries and dependency rules
- Warn: architecture mapping is ambiguous or stale
- Fail: clear violation of explicit architecture constraints
- Rules gate
- Pass: implementation follows explicit project rules
- Warn: relevance/verification is ambiguous
- Fail: clear violation of explicit rule text
- Roadmap gate
- Pass: work aligns with existing milestone direction (prefer
## Roadmap Linkagefrom the plan when present) - Warn:
.ai-factory/ROADMAP.mdmissing, ambiguous mapping, or no milestone linkage forfeat/fix/perfscope - Fail (strict mode): clear roadmap contradiction after all available roadmap context is considered
- Pass: work aligns with existing milestone direction (prefer
Normal mode behavior:
- Architecture/rules clear violations fail verification.
- Roadmap mismatch and missing milestone linkage are warnings unless contradiction is explicit and severe.
Strict mode behavior:
- Architecture and rules clear violations fail verification.
- Clear roadmap mismatch fails verification.
- Missing milestone linkage for
feat/fix/perfremains a warning (even when.ai-factory/ROADMAP.mdexists).
Human logging/reporting format:
- Non-blocking findings:
WARN [gate-name] ... - Blocking findings:
ERROR [gate-name] ...
If the user wants a standalone rules-only pass, suggest $aif-rules-check. Keep human context-gate labels at WARN / ERROR, then derive the final machine-readable gate result from the full verification report.
Machine-readable gate result:
- Append one final fenced
aif-gate-resultJSON block after the human-readable verification report. - Use
"gate": "verify". - Use
"status": "pass|warn|fail"where:fail= incomplete required tasks, failed blocking quality checks, strict-mode context gate failures, or other blockers requiring remediation.warn= only non-blocking warnings remain, optional checks were skipped, docs/test gaps were accepted as warnings, or context drift is ambiguous.pass= no blocking or warning findings remain.
- Use
"blocking": true|false; set it totrueonly when the result should stop commit or merge flow. - Include only blocking findings in
"blockers": [; keep non-blocking notes in the human summary. - Include changed or implicated paths in
"affected_files": [. - Set
"suggested_next": {to$aif-fix,$aif-rules,$aif-architecture,$aif-roadmap,$aif-commit, ornullaccording toreferences/GATE-RESULT-CONTRACT.md.
3.6 Context Drift (Optional Remediation)
$aif-verify is read-only for context artifacts. Do not edit or regenerate .ai-factory/* files here.
If you detect that a context artifact is stale, missing, or ambiguous, report it as a drift finding and provide the owner-command remediation:
DESCRIPTION.mddrift → suggest$aif(or note that$aif-implementshould have updated it during implementation)ARCHITECTURE.mddrift → suggest$aif-architectureROADMAP.mddrift → suggest$aif-roadmap check(or$aif-roadmap <update request>)RULES.mddrift → suggest$aif-rules <rule text>
Ask the user a single optional question only if drift was detected and fixing it now would materially improve correctness:
AskUserQuestion: Context drift detected. Capture updates now?
Options:
1. Yes — show the exact commands to run (recommended)
2. No — proceed without updating contextStep 4: Verification Report
4.1 Display Results
## Verification Report
### Task Completion: 7/8 (87%)
| # | Task | Status | Notes |
|---|------|--------|-------|
| 1 | Create user model | ✅ Complete | |
| 2 | Add registration endpoint | ✅ Complete | |
| 3 | Add password reset | ⚠️ Partial | Missing: email sending |
| 4 | Add JWT auth middleware | ✅ Complete | |
| 5 | Add rate limiting | ✅ Complete | |
| 6 | Add input validation | ✅ Complete | |
| 7 | Add error handling | ✅ Complete | |
| 8 | Update API docs | ❌ Not found | No changes in docs/ |
### Code Quality
- Build: ✅ Passes
- Tests: ✅ 42 passed, 0 failed
- Lint: ⚠️ 2 warnings in src/api/auth/reset.ts
### Issues Found
1. **Task #3 incomplete** — Password reset endpoint created but email sending not implemented (SendGrid integration missing)
2. **Task #8 not done** — API documentation not updated despite plan requirement
3. **2 unfinished markers found** — src/services/auth.ts:45, src/middleware/rate-limit.ts:12
4. **New env var undocumented** — `SENDGRID_API_KEY` referenced but not in .env.example
### No Issues
- All imports resolved
- No unused dependencies
- DESCRIPTION.md up to date
- No leftover debug logs4.2 Determine Overall Status
- All Green — everything verified, no issues
- Minor Issues — small gaps that can be fixed quickly
- Significant Gaps — tasks missing or partially done, needs re-implementation
4.2.1 Append Machine-Readable Gate Result
After the human-readable report and overall status, append exactly one final aif-gate-result fenced JSON block.
{
"schema_version": 1,
"gate": "verify",
"status": "pass",
"blocking": false,
"blockers": [],
"affected_files": [],
"suggested_next": {
"command": "$aif-commit",
"reason": "Verification passed without blockers."
}
}Schema reminder: "status": "pass|warn|fail", "blocking": true|false, "blockers": [, "affected_files": [, "suggested_next": {.
4.3 Action on Issues
If issues were found:
AskUserQuestion: Verification found issues. What should we do?
Options:
1. Fix now (recommended) — Use $aif-fix to address all issues
2. Fix critical only — Use $aif-fix for incomplete tasks, skip warnings
3. Fix directly here — Address issues in this session without $aif-fix
4. Accept as-is — Mark everything as done, move onIf "Fix now" or "Fix critical only":
- First suggest using
$aif-fixand pass a concise issue summary as argument - Example:
$aif-fix complete Task #3 password reset email flow, implement Task #8 docs update, remove unfinished markers in src/services/auth.ts and src/middleware/rate-limit.ts, document SENDGRID_API_KEY in .env.example
- If user agrees, proceed via
$aif-fix - If user declines
$aif-fix, continue with direct implementation in this session - For each incomplete/partial task — implement the missing pieces (follow the same implementation rules as
$aif-implement) - For unfinished markers/debug artifacts — clean them up
- For undocumented config — update
.env.exampleand docs - After fixing, re-run the relevant verification checks to confirm
If "Accept as-is":
- Note the accepted issues in the plan file as a comment
- Continue to Step 5
Step 5: Suggest Follow-Up Skills
After verification is complete, suggest next steps based on result:
- If unresolved issues remain (accepted or deferred), suggest
$aif-fixfirst - If all green, suggest security/review/commit flow
## Verification Complete
Suggested next steps:
1. 🛠️ $aif-fix [issue summary] — Fix remaining verification issues
2. 🔒 $aif-security-checklist — Run security audit on the new code
3. 👀 $aif-review — Code review of the implementation
4. 💾 $aif-commit — Commit the changes
Which would you like to run? (or skip all)AskUserQuestion: Run additional checks?
Options:
1. Fix issues — Run $aif-fix with verification findings
2. Security check — Run $aif-security-checklist on changed files
3. Code review — Run $aif-review on the implementation
4. Both — Run security check, then code review
5. Skip — Proceed to commitIf fix issues selected → suggest invoking $aif-fix <issue summary>
If security check selected → suggest invoking $aif-security-checklist
If code review selected → suggest invoking $aif-review
If both → suggest security first, then review
If skip → suggest $aif-commit
Context Cleanup
Suggest the user to free up context space if needed: /clear (full reset) or /compact (compress history).
Strict Mode
When invoked with --strict:
$aif-verify --strict- All tasks must be COMPLETE — no partial or skipped allowed
- Build must pass — fail verification if build fails
- Tests must pass — fail verification if any test fails (tests are required in strict mode)
- Lint must pass — zero warnings, zero errors
- No unfinished task markers in changed files
- No undocumented environment variables
- Architecture gate must pass — fail on clear boundary/dependency violations
- Rules gate must pass — fail on clear rule violations
- Roadmap gate must pass — fail on clear roadmap mismatch
- Missing milestone linkage for
feat/fix/perfis a warning even in strict mode - Do not fail strict verification solely because milestone linkage is missing
Strict mode is recommended before merging to the configured base branch or creating a pull request.
Usage
After implement (suggested automatically)
$aif-verifyStrict mode before merge
$aif-verify --strictStandalone (no plan, verify branch diff)
$aif-verify
→ No plan found → verify branch diff against the configured base branchDoes it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

