Lint the rules you never wrote down.
以下摘录自该仓库的 README(片段) · 在 GitHub 读完整 README →
AI writes the code. argot harnesses it with the one thing that can’t
hallucinate: your repo’s own history .
Statistics, not a second LLM. 100% local. It surfaces the divergence — you
decide what to accept.
argot.tmonier.com
·
Documentation
·
Evidence
·
Research log
🎬 Watch the 45-second launch film
Start with an audit
argot audit needs no prior Argot fit or configuration. It fits a historical
base in a temporary worktree, then evaluates the surviving base-to-HEAD net
diff. Your working tree is left untouched. It is a review prompt—not a census
of who wrote code, or proof that a finding is a defect.
Windows: powershell -c "irm https://github.com/get-tmonier/argot/releases/latest/download/argot-installer.ps1 | iex".
The npm package is also available as npm install -g @tmonier/argot.
Audit needs usable Git history and supported source. It has no fixed runtime
promise. It runs fully offline — the code-embedding model behind the semantic
findings ships inside the binary. See
Getting started for install
and fit details.
If the audit gives you a useful lead, fit the current repository and score the
changes you intend to review:
Review and commit the generated argot.toml and .argot/ fit snapshot, then
merge it into the branch future PRs target before adding a CI workflow. Local
tools and CI then use the same learned baseline. CI only reads the base branch
snapshot; it never fits, so the initial snapshot PR must be separate from the
CI-workflow PR. argot status later recommends a local
fit-and-commit refresh only when accepted source, function, or layout surfaces
have materially changed. Commit count and age are not refresh triggers by
default; [fit] refresh-after is available only as an explicit team backstop.
The argot-refresh skill re-audits exclusions, structural paths, and mutes
before fitting, so a reorganized repository does not blindly relearn old scope.
The embedding model itself ships inside the binary. Git stores only the
repository-specific learned snapshot—typically a few MB to a few tens of MB—so
every clone can reproduce the check without retraining or operating a service.
check reports patterns worth reviewing on the selected changeset; a clean result
does not prove the change correct or fully idiomatic. Read the
Audit,
Init and Fit, and
Check guides for the exact contracts.
What it surfaces
**Type checkers ask if it compiles. argot asks if it’s yours.** A clean,
type-correct, well-reviewed pull request can still be foreign to the repository
it lands in. These are the rules argot ships, every one of them learned from
your own history rather than configured by hand:
| Rule | Group | What it flags |
| ------------------- | ------------ | ---------------------------------------------------------------- |
| foreign-import | voice | an import of a dependency the repo has never used |
| unfamiliar-callee | voice | a call to a receiver or callee the repo's code never calls |
| rare-tokens | voice | a token sequence statistically foreign to the repo's voice |
| convention | voice | a construction that breaks a convention learned from the repo |
| superseded | voice | a pattern this repo has been replacing, or declared migrated away |
| redundant | semantic | a new function that duplicates one the repo already has |
| misplaced | semantic | a function that looks like it belongs in another module area |
| layering | architecture | an internal import that reverses the repo's layer direction |
| test-deleted | integrity | a test removed while the code it exercised still exists |
| test-disabled | integrity | a skip marker added, or a test gutted, as production changes |
| test-weakened | integrity | assertions removed, tautologized, or loosened alongside a change |