Skip to content

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

  • 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.

No input parameters. Call this tool with an empty object {}.

{
"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
}
{}
  1. forgeplan_drift — list drifted decisions.
  2. forgeplan_get each ADR — read original rationale.
  3. Decide: still valid? → forgeplan_renew. No longer reflects code? → forgeplan_supersede with a new ADR.
  4. forgeplan_drift again — confirm list shrank.
Terminal window
forgeplan drift