| name | quick-wins |
| description | Surface and triage local issues that are safe and quick for an AI to implement and easy for a human to verify. Use when the user wants to "knock out issues", asks for "quick wins", "low-hanging fruit", "what's easy to do right now", or wants a batch of small tasks to work through in one session. |
| allowed-tools | Bash, Read |
Quick Wins ā find AI-friendly issues to knock out
Use this skill when the user wants to power through a batch of small issues. The goal is to identify issues where:
- The spec is already done ā root cause, file paths, or implementation hints are in the issue body
- The blast radius is small ā touches one logger / one command / one screen, not architecture
- A human can verify in <2 minutes ā clear "do X, see Y" check
- Failure mode is obvious ā if it breaks, you'll see it immediately (not a slow data corruption)
Workflow
Step 1 ā list candidate issues
Pull all 2-todo issues with their size/complexity:
obsidian base:query vault=nvALT path="Simple History issues.base" format=json \
| jq '[.[] | select(.status == "2-todo") | {name, prio, type, size, complexity}]'
Filenames also act as a length proxy (longer file = more spec written down):
ls -S "/Users/bonny/Documents/nvALT/Simple History/issues/" | head -30
wc -l "/Users/bonny/Documents/nvALT/Simple History/issues/"*.md | sort -n
Very short issues (<25 lines) are usually stubs without enough context ā skip them unless the title alone is enough.
Very long issues are often well-spec'd but may have grown in scope ā read carefully.
Step 2 ā score each candidate
Read the body and rate against these signals. Don't invent scores; just check off what's true.
Green flags (more = better)
- š¢ Issue body names a specific file + line for the fix (e.g. "
class-post-logger.php:654, add ...")
- š¢ Has a
> [!agent] decision block ā means the design has already been debated
- š¢ Marked
size: 1-small or complexity: patch
- š¢ Type is
bug with reproducible steps
- š¢ Verification is "run X, see Y" ā no test data, no special account, no third-party service
- š¢ Single-file or single-method change
Red flags (any one is usually disqualifying)
- š“ Touches the database schema or runs
ALTER TABLE on existing data
- š“ Modifies billing, license validation, or update server logic
- š“ Crosses core ā premium boundary (without clear interface)
- š“ Type is
feature and the body is a stub (<25 lines, no implementation hints)
- š“ Verification needs WooCommerce + a real order + a real product (unless WC is set up locally)
- š“ Status is
4-needs-decision or 5-needs-investigation ā by definition not ready
- š“ Networks/multisite changes without a network test environment
- š“ UI redesigns (subjective taste calls ā save for human-led work)
Step 3 ā present a tiered list
Group findings into three tiers and present to the user. Don't pick ā let the user choose what to work on.
š¢ Tier 1 ā Spec is done, just implement
- <Issue name> ā one-line summary of fix + verification step
...
š” Tier 2 ā Clear scope, slightly larger
- <Issue name> ā ...
š“ Skip for now (with reason)
- <Issue name> ā too risky / underspecified / needs decision
Step 4 ā once user picks one
Follow the normal local-issues workflow:
obsidian property:set ... status=1-in-progress
- Implement the change
- Verify by running the steps in the issue
- Run linters and relevant tests
- Commit (per
git-commits skill)
obsidian property:set ... status=8-done and review=pending
- Append a
> [!agent] block summarising what changed and how the user can verify
If the user says "do them all" or "knock them out", work through one at a time, marking each done before starting the next. Do not batch into a single commit ā one issue, one commit, so review can happen per-issue.
Anti-patterns ā DON'T
- ā Don't promote an issue to Tier 1 just because it's small. "Small + underspecified" still means hidden decisions.
- ā Don't treat
size: 1-small as the only signal ā read the body.
- ā Don't pick issues with
status: 4-needs-decision or 5-needs-investigation ā they're parked for a reason.
- ā Don't pick UX/redesign work without an explicit
> [!agent] decision in the body.
- ā Don't assume an issue is fresh ā check if there's already an
agent note saying it's partly done.
Notes on common issue types in this repo
- WP-CLI bugs (e.g. things-not-logged-from-CLI) ā usually a missing
WP_CLI exception alongside the REST_REQUEST/XMLRPC_REQUEST checks. Easy to verify with wp commands.
- Logger improvements (extra context fields like SKU/ID) ā see the
create-logger and logger-messages skills. Verify via the populate-log skill or by doing the action and reading the event details.
- License/constant features (premium) ā small, isolated changes in the licensing code. Verify by
define()-ing the constant and reloading the settings screen.
- WooCommerce features ā only safe if WC is installed locally and you can hit the action. If not, mark blocked and move on.