Skip to content

docs(quest): surface objective type enum and update_objective characterId requirement#52

Merged
Mnehmos merged 1 commit into
mainfrom
fix/43-quest-objective-docs
Apr 19, 2026
Merged

docs(quest): surface objective type enum and update_objective characterId requirement#52
Mnehmos merged 1 commit into
mainfrom
fix/43-quest-objective-docs

Conversation

@Mnehmos

@Mnehmos Mnehmos commented Apr 18, 2026

Copy link
Copy Markdown
Owner

Summary

Two contract-discoverability fixes for quest_manage:

  • The objective type enum (kill | collect | deliver | explore | interact | custom) was only discoverable through validation errors. Now listed in the tool description and on the objectives input field.
  • update_objective requires characterId (semantic requirement — quest must be active for that character), now noted in both the action description and the workflow section.

Test plan

  • 2 new contract tests assert the description surfaces the enum and the characterId requirement
  • quest-manage suite: 27/27 pass
  • No code-path changes (description only)

Closes #43

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Documentation

    • Clarified requirements for updating quest objectives, including the necessity of a character ID.
    • Added documentation of available objective types for quest creation (kill, collect, deliver, explore, interact, custom).
  • Tests

    • Added verification tests to ensure quest management documentation maintains accuracy regarding objective types and character ID requirements.

@coderabbitai

coderabbitai Bot commented Apr 18, 2026

Copy link
Copy Markdown

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 0a7e5c43-c936-4317-bbfc-7c4262cfecdb

📥 Commits

Reviewing files that changed from the base of the PR and between 2d9ddb9 and 2a480ce.

📒 Files selected for processing (2)
  • src/server/consolidated/quest-manage.ts
  • tests/server/consolidated/quest-manage.test.ts

📝 Walkthrough

Walkthrough

This PR documents previously undeclared requirements in the QuestManageTool. It clarifies that update_objective requires a characterId parameter and enumerates six allowed objective type values (kill, collect, deliver, explore, interact, custom) in the tool description and test assertions.

Changes

Cohort / File(s) Summary
Quest Management Tool Documentation
src/server/consolidated/quest-manage.ts
Updated QuestManageTool description to add "(requires characterId)" note for update_objective action and added "OBJECTIVE TYPES (for create)" section enumerating all valid type enum values.
Test Assertions
tests/server/consolidated/quest-manage.test.ts
Added two new assertions verifying that the tool description documents the objective type enum values and the characterId requirement for update_objective.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Poem

🐰 The types were hiding, dark and deep,
But now their secrets we will keep!
kill, collect, and all the rest,
Quest objectives now are blessed!
With characterId made clear at last,
No confusion holds us fast!

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately describes the main changes: documenting the objective type enum and the update_objective characterId requirement.
Linked Issues check ✅ Passed The PR fully addresses both requirements from issue #43: surfaces the objective type enum in tool description and documents the characterId requirement in update_objective action description.
Out of Scope Changes check ✅ Passed All changes are directly related to the linked issue #43 objectives. No extraneous modifications beyond documenting the objective types and characterId requirement were introduced.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/43-quest-objective-docs

Comment @coderabbitai help to get the list of available commands and usage tips.

…erId requirement

The objective `type` field accepts only kill/collect/deliver/explore/interact/custom
but the tool description didn't list them, so callers had to discover the enum
from validation errors. Same for `update_objective` requiring `characterId` —
it's a real semantic requirement (the quest must be active for that character),
not just a missing field, but the action description didn't mention it.

- Add OBJECTIVE TYPES section to tool description
- Note characterId requirement on update_objective in both action description and workflow
- Describe the type enum on the inputSchema's objectives field
- Add contract tests asserting both are surfaced

Closes #43

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@Mnehmos Mnehmos merged commit f499d4b into main Apr 19, 2026
4 checks passed
@Mnehmos Mnehmos deleted the fix/43-quest-objective-docs branch April 19, 2026 20:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

quest_manage: objective type enum undocumented; update_objective requires undocumented characterId

1 participant