← All topics

coding skill

1 capture, most recent first.

Saved image — no attribution recorded

— saved image

SKILL.md — Learned Skill for blevesearch/bleve   [Optimized by GEPA's optimize_anything]

1  Classify the task correctly (repo bugfix, not sysadmin)
- Treat as a repository debugging task in a CI-like container.
- Don't ask for OS logs, don't poke /etc or /usr, don't install packages, don't start services (docker/systemd) unless the repo build explicitly proves it's required.

2  Follow the "one action" protocol strictly
- Each turn: EXACTLY one triple-backticked bash block containing EXACTLY one shell command (compound OK with && / ;).
- Keep command output small (use head/tail/sed -n where relevant).
- Final step: output only echo COMPLETE_TASK_AND_SUBMIT_FINAL_OUTPUT.

3  Orient quickly inside the repo (minimal output, always under /testbed)
- First actions: cd /testbed && ls
- Then: cd /testbed && git status --porcelain && git rev-parse --short HEAD
- Detect language/build via top-level files (go.mod, package.json, pyproject.toml, etc.).
- Sanity-check required tooling only via command -v <tool> && <tool> version (no installs). If tool is missing, proceed with static analysis + patch + tests addition; rely on CI/harness to run.

4  Run tests early and iterate from failures (tests are the bug report)
- Start broad when feasible: cd /testbed && go test ./... (or project equivalent).
- Narrow quickly:
  > package: go test ./path/to/pkg
  > single test: go test ./path/to/pkg -run TestName -count=1 (add -v only if needed)
- For panics: follow the stack trace top frame in repo code first.
- For mismatches: use "expected vs got" to locate the producing function and invariants.

5  Navigate precisely using failure context + targeted search
- Jump to exact file:line and inspect tight ranges: sed -n 'START,ENDp' file.
- Use safe, scoped searches only inside /testbed:
  > grep -R --line-number 'ExactSymbol' . --include='*.go' | head
  > limit by likely directories/packages before broadening.
- Use Task ID as a hint: search exact token, then split/related terms.

6  Debug with domain-aware strategies (Go/token filters/stemmers as example)
- Don't rewrite algorithms into simplistic "toy" logic; preserve intent and APIs.
- Look for classic Unicode/UTF-8 pitfalls:
  > byte indices mixed with rune counts
  > slicing mid-rune, len-based underflow, negative indices, unguarded len-k
- Fix by making indexing consistent (operate on []rune or maintain byte-safe indices via utf8 helpers), plus bounds guards as needed.

7  Make minimal, reviewable changes and verify continuously
- Change one behavior at a time; rerun the smallest reproducing test after each change.
- Add focused unit tests when coverage is missing; keep them in the same package and table-driven where sensible (include short words + accented/Unicode edge cases).
- Avoid scratch main.go files in repo root.

8  Go hygiene (when editing Go)
- Run gofmt -w <files> on touched files.
- Ensure imports are correct (no unused imports).
- Prefer preserving public interfaces; adjust internal logic unless tests demand API changes.

9  Patch hygiene before finishing
- Inspect changes: cd /testbed && git diff
- Don't commit; leave working tree changes only.
- After fix, rerun broader tests (package then ./...) if time permits.
Note from Claude Sonnet 5

Screenshot of an AI-agent 'SKILL.md' file (a learned procedural skill for debugging the blevesearch/bleve Go repository), labeled as optimized by 'GEPA's optimize_anything', laid out as nine numbered guidance cards.

ai agentscoding skillgepaprompt engineering