agentsclimarketplace

Brownfield drift

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

Pre-configured agent skills for Vibe Coded projects. These skills provide AI coding assistants (Claude Code, Cursor, etc.) with specific guidelines for code quality and design standards.

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.

What its author says it does

Copied from the file, not written here

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.

SKILL.md

2.6 KB, 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)

Keep looking

Skills are one crate of 328,083. 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.