A Claude Code plugin with two skills for keeping sessions grounded and work aligned with goals. Domain-agnostic — works for engineers, designers, researchers, product managers, consultants, or anyone using Claude Code on any kind of project. Distributed via Agentic Flea Market.
Two lightweight skills that answer two questions every project eventually needs:
- What did we actually do, and where are we heading? — answered by
/workflow:wrap-up - Is what we're about to do still the right thing? — answered by
/workflow:align
Neither skill requires input. Both read from context and git state. Both produce structured, opinionated output that accumulates into a working record over time.
Run at the end of any session. It inspects the conversation history and git state, then writes two files without asking you anything.
Use it after:
- A coding session where you shipped a feature or fixed bugs
- A design session where you decided on layout or component structure
- A research spike where you evaluated options
- A planning session where you prioritized or scoped work
- Any session where something was decided, even if nothing was committed
Run before starting work, before a key decision, or when something feels off. It checks whether what you're doing — or what you're about to do — actually advances the project's stated goals.
Use it:
- Before starting a large feature to confirm it's still the right priority
- After a scope change to check what drifted
- To evaluate a proposal before committing to it:
/workflow:align add a referral program - When stakeholder feedback suggests a direction change and you want to assess the impact
Each session prepends a new entry to the top of JOURNAL.md. Entries are structured and include:
Domain tags — what kind of work this was. Multiple tags allowed per session:
engineering, design, product, research, data, ops, marketing, or anything custom.
Phase — where in the lifecycle this session fell:
Discovery— exploring unknowns, spiking, reading docsDesign— planning architecture, writing specs, wireframingBuild— implementing features, writing codeReview— code review, auditing, reading diffsIterate— fixing bugs, refining existing workShip— deploying, releasing, merging to mainReflect— retros, documentation, wrap-ups without major changes
Each entry also captures: the session goal, what concretely changed (named files, routes, decisions), rationale, system impact, anything needing review, and actionable next steps.
Both files are created automatically on first use.
ROADMAP.md has four sections maintained across every session:
- Goal — the stated end goal for the project. Set once, updated only if the goal itself shifts.
- Progress — a table of what has been accomplished and its rated impact (High / Medium / Low).
- Recommended Next Step — re-evaluated fresh after every session (see below).
- Backlog — items ordered by impact/effort ratio, updated each session.
After every wrap-up, Claude does not simply carry forward whatever was listed as the next step before. Instead, it reassesses from scratch: given the stated Goal, everything in Progress, and everything remaining in the Backlog, what is the single best action right now?
This is gradient descent applied to project direction. At each step, rather than following a fixed plan, you take the steepest available path toward the goal given current state. A fixed plan made three sessions ago may no longer reflect what's been learned or built. The Recommended Next Step reflects where things actually are.
In practice: if you ship a feature that unblocks three other things, the next step shifts to whichever of those three has the highest leverage. If a session reveals a blocker or a wrong assumption, the next step reflects that new information. The recommendation is always a function of current state, not a stale artifact of earlier planning.
No argument — analyzes git diff HEAD:
/workflow:align
With argument — analyzes the described proposal instead of git state:
/workflow:align we want to add social login with Google
/workflow:align migrate the data layer to Postgres
/workflow:align cut the analytics dashboard from v1 scope
- Reads ROADMAP.md for the project's stated goal, progress, and direction. If no ROADMAP.md exists, falls back to README.md, CLAUDE.md, or package.json.
- Scans for policy and requirements files (POLICY.md, REQUIREMENTS.md, CONSTRAINTS.md, ADR files, docs/policy*).
- Assesses the change or proposal against each dimension.
Every report has the same structure:
- Changes / Proposal — one sentence on what is being assessed
- Business Alignment — does this move toward the stated goal? (Aligned / Partial / Misaligned)
- Customer Alignment — does this serve the intended users or use cases? (Aligned / Partial / Misaligned)
- Policy Alignment — does this conflict with stated constraints? (Aligned / Partial / Misaligned / N/A)
- Risk Flags — what could this break, drift, or block — even indirectly
- Verdict — ✅ Aligned /
⚠️ Partially Aligned / ❌ Misaligned - Recommendation — if aligned, how to maximize impact; if not, what specifically to change
The skill is direct. It flags real conflicts without softening them. Something is not rated Aligned just because it isn't obviously bad — it must positively advance the stated direction.
Most real projects span multiple domains within a single timeline. A sprint might include engineering work, a design decision, and a product prioritization call. wrap-up handles this through domain tags: a single session entry can carry multiple tags (engineering, product), and JOURNAL.md stays unified as one timeline. The chronological record is the value — not separate per-domain logs.
ROADMAP.md is also shared across domains. The Goal, Progress, and Recommended Next Step reflect the whole project, not just its technical layer. When a design decision advances the goal, it shows up in Progress. When a research spike shifts the priority order, the Backlog reorders accordingly. The gradient descent re-evaluation applies to everything — it asks what moves the project forward, regardless of which domain that action belongs to.
- Start the flea market (
flea-marketif installed globally, ornpm run devfrom source) and add this marketplace:patrikfranzendennis/workflow-plugin - Browse to the workflow plugin and install at user scope — skills become available in every project on your machine.
Add to ~/.claude/settings.json:
{
"enabledPlugins": {
"workflow@workflow-plugin": true
}
}/workflow:wrap-up
End of session. Updates JOURNAL.md and ROADMAP.md. No input needed.
/workflow:align
Check current git changes against the project's stated goal and policies.
/workflow:align add a referral program that emails users weekly
Assess a described proposal before writing any code.
/workflow:align migrate the auth layer to a third-party provider
Check a structural change against business direction and known constraints.
/workflow:align cut the onboarding flow from v1 scope
Evaluate a descoping decision before it's made.
.claude-plugin/
marketplace.json # Marketplace index for Agentic Flea Market
workflow/
CLAUDE.md # Plugin description
wrap-up/
SKILL.md # wrap-up skill instructions
align/
SKILL.md # align skill instructions
README.md