Repository navigation
feat(skills): research skill + /research command - #453
Merged
growlf merged 4 commits intoOct 25, 2026
Merged
Conversation
Fails while the skill does not exist. The guards exist because both halves degrade silently: a command naming a deleted skill still runs and answers from memory, and a skill missing a frontmatter field is simply never advertised.
Answers a factual question by walking an evidence ladder — repo, then live system state, then vendor docs, then secondary — and reports an evidence table with confidence and an explicit unverified list. Memory becomes a lead instead of a finding: no claim reaches the operator unless a source was read this session. websearch stays the tool doc for the web rung; this is the procedure that says when to reach for it.
The command now carries the mandate and the three-part output contract, so
compliance no longer depends on the model choosing to load the skill first.
Verified through the command path (POST /api/session/{id}/command): the template
reaches the model with the topic substituted, and the local model returns the
answer, an evidence table, a confidence line, and an unverified line.
Correction: an earlier draft of this message claimed the model skipped the skill
and ignored the format when driven by 'opencode run'. That command does not
expand slash commands at all, so the template never reached the model. The
failure was in the test harness, not the model.
growlf
force-pushed
the
452-add-a-research-skill-and-research-command-evidence
branch
from
October 25, 2026 21:28
4459ad6 to
4be10e5
Compare
The command body is the only text guaranteed to reach the model on either path, and the review found the format contract unguarded: dropping the table or the confidence line would leave every test green while the deliverable disappeared.
growlf
deleted the
452-add-a-research-skill-and-research-command-evidence
branch
October 25, 2026 21:37
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #452
Adds
research— an evidence ladder (repo/code → live tools → vendor docs → secondary), per-claim sources, confidence, and an explicit unverified list — plus/research <topic>to run it.websearchstays the tool doc for the web rung; this is the procedure that decides when to reach for it.Verification (2026-10-25)
Captured the real provider request by proxying OpenCode to the local llama.cpp endpoint, then restored the config.
GET /api/command?location[directory]=<repo>lists 34 commands includingresearch— discovery works.POST /api/session/{id}/commanddelivers the full 1,066-char template with the topic substituted.Unverified: none. It ran its own edge-case reproductions unasked.Caveat, and it is the harness, not this change:
opencode run "/research …"does not expand slash commands — it sends the literal text. Test/researchfrom the TUI. An earlier draft of this PR drew wrong conclusions fromrunbefore that was understood.Test
make test— 1713 passed, 1 skipped. Guards: canonical frontmatter, 60-line ceiling, command names the skill, the command keeps the three-part contract, AGENTS.md registration.