Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 3f6697d

Browse files
fix(mcp): restore compliance-nudging text in 4 thin tool descriptions (QUEST-40) (#34)
Four MCP tool descriptions were trimmed during an earlier lean-pass and lost the behavioral nudges that peer descriptions still carry. Restore the 'before X / after Y' hints so cold agents pick the right tool by reading the description alone. Restored phrasing per QUEST-40 acceptance: - guild_session_start: "before any other guild tool will work" + "you do not need to pass project to them again" - lore_appraise: "before storing new knowledge or spawning research subagents" - lore_inscribe: "that transcends the current task" (differentiates from quest_journal, whose Long already carries the 'dies when quest clears' counterpart) - quest_post: "well-specced quest = no human follow-up needed to execute it" Totals: 156 words across the four descriptions (target >= 149, prior 135). Every tool stays under the 100-token per-tool budget gate; total static cost still well under the 4700-token ceiling enforced by TestDescriptionBudget. Regenerated docs/generated/{cli,mcp}.md to match. make check clean. Co-authored-by: Kunal Lanjewar <[email protected]>
1 parent 4fd09e9 commit 3f6697d

6 files changed

Lines changed: 18 additions & 17 deletions

File tree

docs/generated/cli.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -345,7 +345,7 @@ guild lore inscribe TITLE... [flags]
345345

346346
**Aliases:** add
347347

348-
Store knowledge that should outlive this quest. Call lore_appraise first; when the search returns entries that informed this one, pass them as informs=[IDs] to create provenance edges at write-time. Cross-project dedup and principle hygiene warnings are built in. Summary distills the durable knowledge; implementation specifics belong in the quest acceptance that called for this inscribe.
348+
Store knowledge that transcends the current task — patterns, decisions, research that outlive the quest. Call lore_appraise first; pass informs=[IDs] for entries that informed this one to create provenance edges at write-time. Cross-project dedup and principle-hygiene warnings are built in.
349349

350350
**Flags**
351351

@@ -951,7 +951,7 @@ create a new quest
951951
guild quest post SUBJECT... [flags]
952952
```
953953

954-
Create a quest another agent can accept without human follow-up. For non-trivial quests, include rich WHY + HOW (rationale, approach, constraints) so a cold agent can execute without re-deriving context from chat. Pass spec=... to atomically attach a kind=decision lore entry with full rationale (QUEST-63).
954+
Create a quest another agent can accept without human follow-up — well-specced quest = no human follow-up needed to execute it. Include rich WHY + HOW (rationale, approach, constraints) so a cold agent executes without re-deriving context from chat. Pass spec=... to atomically attach a kind=decision lore entry with full rationale (QUEST-63).
955955

956956
**Flags**
957957

docs/generated/mcp.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,16 +6,16 @@ Every tool a registered MCP client sees. 38 tools.
66

77
## Tools
88

9-
- [`guild_session_start`](#guild_session_start) — Call FIRST.
9+
- [`guild_session_start`](#guild_session_start) — Call FIRST — before any other guild tool will work.
1010
- [`guild_set_project`](#guild_set_project) — Switch the active project for the rest of this session.
1111
- [`guild_status`](#guild_status) — On-demand dashboard mirroring guild_session_start — last brief, oath, echoes, top bounty, parallelism.
12-
- [`lore_appraise`](#lore_appraise) — Search lore before researching or inscribing.
12+
- [`lore_appraise`](#lore_appraise) — Search lore before storing new knowledge or spawning research subagents.
1313
- [`lore_catalog`](#lore_catalog) — Bulk-import .md files under DIR as lore entries.
1414
- [`lore_commune`](#lore_commune) — Health report for oath bloat and duplicate lore.
1515
- [`lore_dossier`](#lore_dossier) — Compile ~2000-token project context for subagent spawn prompts.
1616
- [`lore_echoes`](#lore_echoes) — List stale/decayed entries the next agent should review or reforge.
1717
- [`lore_inquest`](#lore_inquest) — Audit the oath wall for narrative-bloat principles (>60 words).
18-
- [`lore_inscribe`](#lore_inscribe) — Store knowledge that should outlive this quest.
18+
- [`lore_inscribe`](#lore_inscribe) — Store knowledge that transcends the current task — patterns, decisions, research that outlive the quest.
1919
- [`lore_link`](#lore_link) — Create an informs provenance edge between two entries.
2020
- [`lore_list`](#lore_list) — Browse entries with optional filters.
2121
- [`lore_meld`](#lore_meld) — Find duplicate lore entries across projects.
@@ -39,15 +39,15 @@ Every tool a registered MCP client sees. 38 tools.
3939
- [`quest_journal`](#quest_journal) — Task-scoped scratchpad.
4040
- [`quest_list`](#quest_list) — All open tasks.
4141
- [`quest_orders`](#quest_orders) — List quests currently assigned to a given agent owner.
42-
- [`quest_post`](#quest_post) — Create a quest another agent can accept without human follow-up.
42+
- [`quest_post`](#quest_post) — Create a quest another agent can accept without human follow-up — well-specced quest = no human follow-up needed to execute it.
4343
- [`quest_pulse`](#quest_pulse) — Rework rate, churn rate, hot files, untested quests.
4444
- [`quest_scroll`](#quest_scroll) — Full quest history: status, journal, timeline.
4545
- [`quest_summon`](#quest_summon) — Reassign a quest to a named teammate agent.
4646
- [`quest_update`](#quest_update) — Modify a quest's spec after post.
4747

4848
## `guild_session_start`
4949

50-
Call FIRST. Set the active project, load the briefing, oath, and top task, and default later guild tools to it.
50+
Call FIRST — before any other guild tool will work. Sets the active project, loads the briefing, oath, and top task, and defaults later guild tools to it (you do not need to pass project to them again).
5151

5252
_no arguments_
5353

@@ -123,7 +123,7 @@ _no arguments_
123123

124124
## `lore_appraise`
125125

126-
Search lore before researching or inscribing. Returns ranked entries with project, kind, age, and summary.
126+
Search lore before storing new knowledge or spawning research subagents. Returns ranked entries with project, kind, age, and summary — if current results exist, use them instead of re-deriving.
127127

128128
_no arguments_
129129

@@ -310,7 +310,7 @@ _no arguments_
310310

311311
## `lore_inscribe`
312312

313-
Store knowledge that should outlive this quest. Call lore_appraise first; when the search returns entries that informed this one, pass them as informs=[IDs] to create provenance edges at write-time. Cross-project dedup and principle hygiene warnings are built in. Summary distills the durable knowledge; implementation specifics belong in the quest acceptance that called for this inscribe.
313+
Store knowledge that transcends the current task — patterns, decisions, research that outlive the quest. Call lore_appraise first; pass informs=[IDs] for entries that informed this one to create provenance edges at write-time. Cross-project dedup and principle-hygiene warnings are built in.
314314

315315
_no arguments_
316316

@@ -1175,7 +1175,7 @@ _no arguments_
11751175

11761176
## `quest_post`
11771177

1178-
Create a quest another agent can accept without human follow-up. For non-trivial quests, include rich WHY + HOW (rationale, approach, constraints) so a cold agent can execute without re-deriving context from chat. Pass spec=... to atomically attach a kind=decision lore entry with full rationale (QUEST-63).
1178+
Create a quest another agent can accept without human follow-up — well-specced quest = no human follow-up needed to execute it. Include rich WHY + HOW (rationale, approach, constraints) so a cold agent executes without re-deriving context from chat. Pass spec=... to atomically attach a kind=decision lore entry with full rationale (QUEST-63).
11791179

11801180
_no arguments_
11811181

internal/lore/appraise_cmd.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ var AppraiseCommand = &command.Command[AppraiseInput, AppraiseCmdOutput]{
2929
CLIPath: []string{"lore", "appraise"},
3030
CLIAliases: []string{"check"},
3131
Short: "search lore before researching or inscribing",
32-
Long: "Search lore before researching or inscribing. Returns ranked entries with project, kind, age, and summary.",
32+
Long: "Search lore before storing new knowledge or spawning research subagents. Returns ranked entries with project, kind, age, and summary — if current results exist, use them instead of re-deriving.",
3333
Args: []command.ArgSpec{
3434
{Name: "query", Kind: command.ArgPositional, Type: command.ArgString, Required: true, Variadic: true, Help: "search query (remaining positional args joined on CLI)"},
3535
{Name: "all_projects", Kind: command.ArgFlag, Type: command.ArgBool, Help: "search every project"},

internal/lore/inscribe_cmd.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ var InscribeCommand = &command.Command[InscribeInput, InscribeCmdOutput]{
3333
CLIPath: []string{"lore", "inscribe"},
3434
CLIAliases: []string{"add"},
3535
Short: "inscribe a new knowledge entry into the lore",
36-
Long: "Store knowledge that should outlive this quest. Call lore_appraise first; when the search returns entries that informed this one, pass them as informs=[IDs] to create provenance edges at write-time. Cross-project dedup and principle hygiene warnings are built in. Summary distills the durable knowledge; implementation specifics belong in the quest acceptance that called for this inscribe.",
36+
Long: "Store knowledge that transcends the current task — patterns, decisions, research that outlive the quest. Call lore_appraise first; pass informs=[IDs] for entries that informed this one to create provenance edges at write-time. Cross-project dedup and principle-hygiene warnings are built in.",
3737
Args: []command.ArgSpec{
3838
{Name: "title", Kind: command.ArgPositional, Type: command.ArgString, Required: true, Variadic: true, Help: "short distinctive title"},
3939
{Name: "kind", Short: "k", Kind: command.ArgFlag, Type: command.ArgString, Required: true, Help: "entry kind (required): idea|research|decision|observation|principle"},

internal/mcp/session_tool.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,9 +50,10 @@ type sessionStartInput struct {
5050
// INSTRUCTIONS, loaded once per session rather than repeated per-tool.
5151
var sessionStartTool = &sdkmcp.Tool{
5252
Name: "guild_session_start",
53-
Description: "Call FIRST. Set the active project, load the " +
54-
"briefing, oath, and top task, and default later guild " +
55-
"tools to it.",
53+
Description: "Call FIRST — before any other guild tool will work. " +
54+
"Sets the active project, loads the briefing, oath, and top " +
55+
"task, and defaults later guild tools to it (you do not need " +
56+
"to pass project to them again).",
5657
}
5758

5859
// registerSessionStart wires guild_session_start onto s. Package-

internal/quest/post_cmd.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,8 +49,8 @@ var PostCommand = &command.Command[PostInput, PostOutput]{
4949
Name: "quest_post",
5050
CLIPath: []string{"quest", "post"},
5151
Short: "create a new quest",
52-
Long: "Create a quest another agent can accept without human follow-up. " +
53-
"For non-trivial quests, include rich WHY + HOW (rationale, approach, constraints) so a cold agent can execute without re-deriving context from chat. " +
52+
Long: "Create a quest another agent can accept without human follow-up — well-specced quest = no human follow-up needed to execute it. " +
53+
"Include rich WHY + HOW (rationale, approach, constraints) so a cold agent executes without re-deriving context from chat. " +
5454
"Pass spec=... to atomically attach a kind=decision lore entry with full rationale (QUEST-63).",
5555
Args: []command.ArgSpec{
5656
{

0 commit comments

Comments
 (0)