docs(connectors): compact tag guidance - #674
Conversation
Teach generated agents one canonical store form and the five basic tag conventions. Keep history-derived scope examples aligned with the canonical schema. Signed-off-by: Bernardo Donadio <bcdonadio@bcdonadio.com>
PR Summary by QodoDocs: compact tag conventions for generated connectors guidance
AI Description
Diagram
High-Level Assessment
Files changed (4)
|
There was a problem hiding this comment.
Pull request overview
This PR compacts the generated connector “Available Commands” guidance by switching from --tag/--tags alias exposition to a single canonical lcm store example and a short “Tag conventions” section, while also formalizing a few additional canonical scope: values in the tag schema.
Changes:
- Update the generated command reference template to use a single
lcm storeexample (no--tagsalias mechanics) and add a concise “Tag conventions” section. - Extend
docs/tag-schema.mdwith canonical scopes forconnectors,hooks, andcodecov. - Update tests to assert the new generated rules content and validate the schema contains the newly documented scopes; add a patch changeset.
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
| test/connectors/template-service.test.ts | Updates assertions for the new generated rules content and validates the schema includes the new scopes. |
| src/connectors/templates/sections/command-reference.md | Replaces alias-focused store guidance with a canonical store example and adds “Tag conventions”. |
| docs/tag-schema.md | Adds canonical scope tags for connectors/hooks/codecov. |
| .changeset/compact-agent-tag-guidance.md | Patch changeset entry describing the documentation/guidance update. |
Suppressed comments (2)
src/connectors/templates/sections/command-reference.md:19
- The
scope:conventions line examples omitlcm, but the store example immediately above usesscope:lcm. This can be confusing for users trying to follow the documented convention—includelcmin the examples (or change the store example to match the listed examples).
- `scope:` — Component or domain, such as `connectors`, `hooks`, or `codecov`
test/connectors/template-service.test.ts:94
- The expected
scope:conventions text should stay aligned with the generated template content. Iflcmis included as a scope example (to matchscope:lcmin the store example), update this assertion string to match.
expect(content).toContain('`scope:` — Component or domain, such as `connectors`, `hooks`, or `codecov`');
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Code Review by Qodo🐞 Bugs (0) 📘 Rule violations (0) 📎 Requirement gaps (0)
Great, no issues found!Qodo reviewed your code and found no material issues that require reviewTip of the day💡 Did you know, you can enable the Remediation agent and Qodo fixes findings in a dedicated fix PR More tips ↗ | Customize Qodo ↗ | Qodo docs ↗ |
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 05f68cbb76
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 6 out of 6 changed files in this pull request and generated no new comments.
Suppressed comments (3)
src/mcp/tools/lcm-store.ts:11
- The lcm_store tool description lists "Valid prefixes" but omits
memory_id, which is used elsewhere (e.g., signal:memory_used entries referencememory_id:<id>). This makes the tool schema documentation misleading for callers.
description: "Canonical tags following the <prefix>:<value> schema (see docs/tag-schema.md). Use at least type: and one of project: or scope:. Examples: ['type:solution', 'scope:lcm', 'project:lcm', 'sprint:sp3', 'source:session']. Valid prefixes: type, scope, priority, owner, project, sprint, source, category, signal.",
docs/tag-schema.md:95
- The schema documents
category:intentandcategory:mcp, but the runtime event extractors also emitskillandsubagentcategories which promote-events will persist ascategory:skill/category:subagent. Listing these avoids the schema drifting from what the daemon actually stores.
| Value | When to use |
|-------|-------------|
| `category:intent` | A captured user intent or requested outcome |
| `category:mcp` | MCP tool or integration activity |
test/mcp/server.test.ts:75
- This test uses a non-null assertion and directly indexes nested properties (tool!.inputSchema.properties.tags.description). If the tool definition changes, the test will throw before producing an assertion failure, making the failure harder to diagnose. Add explicit existence/type assertions before reading the nested description.
it("lcm_store advertises the canonical category and signal prefixes", () => {
const tool = getMcpToolDefinitions().find((t: any) => t.name === "lcm_store");
const description = tool!.inputSchema.properties.tags.description;
expect(description).toContain("category");
expect(description).toContain("signal");
Recommend category and signal tags from observed project history, keep the MCP schema aligned, and apply command-list punctuation feedback. Signed-off-by: Bernardo Donadio <bcdonadio@bcdonadio.com>
05f68cb to
69ac5ff
Compare
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 6 out of 6 changed files in this pull request and generated no new comments.
Suppressed comments (2)
src/connectors/templates/sections/command-reference.md:15
- The PR description says the generated guidance should include “five basic tag conventions”, but this section documents seven (type/project/scope/source/priority/category/signal). Please align the PR description (or adjust the documented conventions) so reviewers/users aren’t misled about the scope of the change.
Use these basic conventions by default; add others as needed:
test/connectors/template-service.test.ts:116
- This test asserts the entire
memory_id:<id>table row as one exact Markdown line, which is brittle (any doc reflow/wrapping or wording tweak will fail the test even if the schema meaning is unchanged). Prefer checking for a few key substrings instead of the full row text.
expect(canonicalTagSchema).toContain(
'| `memory_id:<id>` | The referenced promoted-memory identifier; pair with `signal:memory_used` so recall usage counting can attribute the memory |',
);
Summary
Reduce recurring generated-agent context by replacing store-option alias exposition with one concrete canonical command and five basic tag conventions derived from project memory.
Changes
--tagstore invocation and omit--tagsalias mechanicstype:,project:,scope:,source:, andpriority:conventionsHow to validate
npm run test:ciand confirm 100% statements, branches, functions, and lines.npm run typecheck,npm run lint, andnpm run build.generateRulesContent()exactly without--tagsor alias prose.Risk / rollout
Notes