[claude-hackernews] Reply draft: Agent-skills-eval thread, deny() vs instruct() for routing Bash DB queries via tidewave (id=48046023)#64
Conversation
…ueries via tidewave (id=48046023)
📝 WalkthroughWalkthroughA new Markdown draft file outlines a Hacker News "Show HN" submission on an eval harness for Claude code skills, including a substantive reply on tool routing enforcement using "deny" semantics with a concrete policy example that blocks Bash commands matching database access patterns to redirect requests through a dedicated MCP tool. ChangesHN Post Draft on Tool Routing via Deny Semantics
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~3 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@drafts/2026-05-08T212431Z.md`:
- Line 19: The fenced code block opened at the start of the snippet is missing a
language tag (triggers markdownlint MD040); update the opening fence used in the
draft (the triple-backtick block that contains "(disclosure: I work on FailProof
AI...)" ) to include an explicit language tag such as text (e.g., change ``` to
```text) so the block is properly tagged and MD040 is resolved.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: bcfd33ac-de3c-4136-b7d5-05234b74b80d
📒 Files selected for processing (1)
drafts/2026-05-08T212431Z.md
|
|
||
| **My reply:** | ||
|
|
||
| ``` |
There was a problem hiding this comment.
Add a language tag to the fenced code block.
Line 19 opens a fenced block without a language, which triggers markdownlint MD040.
Suggested fix
-```
+```text
(disclosure: I work on FailProof AI: https://github.com/exospherehost/failproofai)
...
-```
+```🧰 Tools
🪛 markdownlint-cli2 (0.22.1)
[warning] 19-19: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@drafts/2026-05-08T212431Z.md` at line 19, The fenced code block opened at the
start of the snippet is missing a language tag (triggers markdownlint MD040);
update the opening fence used in the draft (the triple-backtick block that
contains "(disclosure: I work on FailProof AI...)" ) to include an explicit
language tag such as text (e.g., change ``` to ```text) so the block is properly
tagged and MD040 is resolved.
Discovery
/ask,/show,hn.algolia.com/?q=claude%20code%20agent,hn.algolia.com/?q=agent%20guardrails,hn.algolia.com/?q=claude%20code%20hooks,hn.algolia.com/?q=codex%20agent(alldateRange=pastWeek/pastMonth,sort=byDate).drafts/,comments/, and open PRs). Tilde.run sandbox thread (id=48037724) skipped under cross-thread duplicate guard since luv-63's "Stop Treating Agent Sandboxes as Cattle" already argues the intent-vs-infra layer.Thread
CLAUDE.mdtelling it to route DB queries through tidewave's MCP server, and instead doesBash(DATABASE_URL=$(grep ... .env) echo "ok"). reedlaw's id=48051949 then asks how a hook would even work for this, and concludes "prompts are not tightly coupled with capabilities".Proposed reply (full text in
drafts/2026-05-08T212431Z.md)The reply pivots on the deny()-vs-instruct() distinction:
instruct(msg)injects guidance and lets the call proceed (so the model can ignore it the same way it ignores CLAUDE.md), butdeny(msg)returns a tool-error so the bash literally does not run and the model has to take a different path. Includes one custom-policy snippet that pattern-matches DB-shaped Bash commands anddenys them with a redirect message to tidewave's MCP tool. ~140 words. ASCII-only punctuation. Single disclosure line at the top, single repo link.Workflow
origin/main(luv-64 has its own PR [claude-hackernews] Reply draft: Kirikiri Show HN, mobile supervision asymmetry vs hook layer (id=47996198) #55 covering id=47996198, so this is not bundled there).drafts/,comments/, or open-PR diff. Cross-thread duplicate guard verified - deny()-vs-instruct() framing is fresh; earlier PRs covered transport-vs-hook, MCP-surface-vs-PreToolUse, Docker-vs-intent, workflow-vs-invariant, etc.Summary by CodeRabbit
Note: This change consists primarily of internal draft materials with no direct user-facing impact.