Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions .claude-plugin/marketplace.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"name": "finally-marketplace",
"owner": {
"name": "Vincent"
},
"plugins": [
{
"name": "independent-reviewer",
"source": "./independent-reviewer",
"description": "Carry out an independent review of all changes since last commit."
}
]
}
11 changes: 11 additions & 0 deletions .claude/agents/change-reviewer.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
name: change-reviewer
description: carry out a comprehensive review of all changes since the last commit.
----

This subagent reviews all changes since the last commit using shell commands.
IMPORTANT: you should not review the changes yourself, but rather, you should run a shell command to kick off copilot - copilot is a seperate AI agent that will carry out the independent review.
Run this shell command:
'copilot exec "Please review all changes since the last commit and write feedback to planning/REVIEW.md"'
This will run a review process and save the results.
Suggest a reviewer if no other reviewer is available. If you are the only reviewer, you should review the changes yourself and write feedback to planning/REVIEW.md.
1 change: 1 addition & 0 deletions .claude/commands/doc-review.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Review the documentation file in the planning folder called $ARGUMENTS and add questions, clarifications or feedback to a new section at the end, along with any opportunities to simplify
1 change: 1 addition & 0 deletions .claude/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,4 @@
"playwright@claude-plugins-official": true
}
}

15 changes: 15 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,21 @@ finally/
└── scripts/ # Start/stop helpers
```

## Development Workflow

This repo uses Claude Code subagents to keep planning docs and changes reviewed:

- **`.claude/commands/doc-review.md`** — a `/doc-review` slash command that appends a dated "Doc Review" section to a planning doc (questions, clarifications, simplification opportunities) without duplicating prior review rounds.
- **`.claude/agents/change-reviewer.md`** — a subagent that reviews all changes since the last commit.
- **Stop hook** (`.claude/settings.json`) — after each Claude Code session, appends a `git diff HEAD --stat` summary to `planning/PLAN.md` under an "Automated Change Review" heading.

## Notes for Stability & Cleanliness

- **`planning/PLAN.md` is growing unboundedly.** The Stop hook appends a diff-stat block every time a session ends, even across multiple stops with no new commits in between. Consider redirecting that output to a separate `planning/CHANGELOG.md` (or gating the hook on a non-empty diff) so the core spec document doesn't accumulate log noise.
- **No auth on a plan intended for optional public cloud deployment** (see `planning/PLAN.md` §11, §14): trade and chat endpoints are unauthenticated by design (single hardcoded `user_id`). Fine for local/course use — but if this is ever deployed to a public App Runner/Render URL, anyone with the link can trade the virtual portfolio and consume the deployer's OpenRouter quota. Worth a login gate or shared secret before any public deployment.
- **Floating-point drift risk**: `cash_balance`, `avg_cost`, and `quantity` are all `REAL` columns accumulating many small trades. Pin down a rounding convention (e.g., 2 decimals for cash/price) before the portfolio math package is built, so it isn't retrofitted later.
- **`codex` CLI dependency**: an earlier review pass installed `@openai/codex` under a user-owned npm prefix (`~/.npm-global`) because global installs needed `sudo`. That account is currently over its usage quota. If codex-based reviews are meant to be part of the standard workflow, document the install path and quota expectations somewhere in `planning/` so it's reproducible for other contributors.

## License

See [LICENSE](LICENSE).
5 changes: 5 additions & 0 deletions independent-reviewer/.claude-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"name": "independent-reviewer",
"description": "Carry out an independent review of all changes since last commit.",
"version": "1.0.0"
}
15 changes: 15 additions & 0 deletions independent-reviewer/hooks/hooks.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"hooks": {
"Stop": [
{
"hooks": [
{
"type": "command",
"command": "{ echo; echo \"## Automated Change Review — $(date -u +\\\"%Y-%m-%dT%H:%M:%SZ\\\")\"; echo; echo '```'; git diff HEAD --stat; echo '```'; } >> \"$(git rev-parse --show-toplevel)/planning/PLAN.md\" 2>/dev/null || true",
"statusMessage": "Reviewing changes since last commit..."
}
]
}
]
}
}
Loading