forgeplan_drift
Detect “drifted decisions” — architectural decisions (ADR / RFC) whose declared affected files have been modified since the decision was recorded. Drift is a strong signal that the implementation has diverged from the documented rationale, and the decision may need a refresh, supersede, or new ADR.
Category: Quality
When an agent calls it
Section titled “When an agent calls it”- Quarterly audit — find ADRs that no longer match the code.
- Before claiming an ADR is authoritative — verify the affected files haven’t been rewritten.
- Before a refactor — check if your target files are governed by a drifted ADR, and update it first.
- Release prep — confirm no architectural decisions are silently stale.
Drift detection uses git mtime (or LanceDB-recorded modified_at) on files listed in the artifact’s affected_files frontmatter field.
Input parameters
Section titled “Input parameters”No input parameters. Call this tool with an empty object {}.
Returns
Section titled “Returns”{ "drifted": [ { "id": "ADR-004", "kind": "adr", "created_at": "2026-02-15", "affected_files": [ { "path": "crates/forgeplan-core/src/db/mod.rs", "modified_at": "2026-04-07", "days_since_decision": 51 } ] } ], "total_drifted": 1}Example invocation
Section titled “Example invocation”{}Typical sequence
Section titled “Typical sequence”forgeplan_drift— list drifted decisions.forgeplan_geteach ADR — read original rationale.- Decide: still valid? →
forgeplan_renew. No longer reflects code? →forgeplan_supersedewith a new ADR. forgeplan_driftagain — confirm list shrank.
CLI equivalent
Section titled “CLI equivalent”forgeplan driftSee also
Section titled “See also”forgeplan_coverage— inverse view: which modules lack decisions.forgeplan_stale— time-based (not file-based) staleness.forgeplan_supersede— replace a drifted ADR.- Methodology guide