agentsclimarketplace

Brownfield drift

Skill wednesday-solutions/ai-agent-skills/skills/brownfield-drift

Enforces architecture boundaries defined in PLAN.md. Use when a PR crosses module/service boundaries, when the dev asks "are we following the architecture?", or as a scheduled architecture health check. Not for querying what a module does — use brownfield-chat for that.From its SKILL.md

Install
npx -y skills add wednesday-solutions/ai-agent-skills --skill brownfield-drift

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • runs commandsInstructs the agent to run 3 commands, including `wednesday-skills drift` and 2 more.

SKILL.md

2.6 KB, 543 tokens by cl100k_base, as published. Nobody here has run it

When to use

  • Dev asks "are we following the architecture?" or "is this a valid change?"
  • PR touches files near module boundaries or service interfaces
  • Weekly architecture health check
  • Any cross-service import was just added

When NOT to use

  • "What does module X do?" → use brownfield-chat
  • "What breaks if I change X?" → use brownfield-chat
  • Graph coverage is low on a file → use brownfield-fix (it fills gaps before editing)
  • No PLAN.md exists — drift requires machine-readable boundaries in PLAN.md

What to do

  1. Run wednesday-skills drift via Bash tool
  2. Report violations with:
    • The specific edge that violates the rule
    • The commit that introduced it (when available)
    • The suggested fix per PLAN.md intent
  3. For PR reviews: run wednesday-skills drift --since <base-commit> to only report new violations
  4. For a single rule: wednesday-skills drift --rule <rule-name>

Adding constraints to PLAN.md

If the project has no constraints block, add one to PLAN.md:

{
  "boundaries": [
    {
      "rule": "frontend-never-imports-db",
      "description": "Frontend components must never import DB layer directly",
      "from": "src/app/**",
      "to": "src/lib/db/**",
      "type": "forbidden"
    },
    {
      "rule": "no-circular-deps",
      "description": "No circular dependencies anywhere",
      "scope": "**",
      "type": "no-cycle"
    }
  ]
}

Violation types

TypeWhat it catches
forbiddenImport from A → B that should never exist
ownershipLogic pattern appearing outside its designated owner
no-direct-importDirect import between services that should use API
no-cycleCircular dependency between modules

Never

  • Auto-fix boundary violations — always ask the dev first
  • Flag existing violations on a PR that did not introduce them (use --since)
  • Run on projects without machine-readable PLAN.md constraints
  • Report the same violation twice in one review session

CLI reference

wednesday-skills drift                              # full check
wednesday-skills drift --rule frontend-never-imports-db  # single rule
wednesday-skills drift --since abc1234              # new drift only (for PR review)

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.