docs: sync public pages, API/MCP docs, and guides to actual functionality#230
Merged
Conversation
…lity Audited every public surface (loopctl.com landing/docs pages, API discovery endpoints, README, mcp-server README, orchestration guide, CHANGELOG) against ground truth (router.ex, mcp-server/index.js TOOLS) and fixed all drift so agents can accurately educate users about loopctl. Tool count - Corrected the MCP tool count to 69 (was 57 on the landing/docs pages, 65 in README/mcp-server README/CLAUDE.md). Verified against the TOOLS array. - Documented the 4 previously-undocumented tools: knowledge_conflicts, knowledge_resolve_conflict, knowledge_curation_log, knowledge_retrieval_metrics. README - UI-test endpoints are nested under /projects/:project_id/ui-tests (were unreachable /ui_test_runs paths). - GET / serves the HTML landing page (does not redirect). - Added a Chain of Custody v2 dispatch-pattern note to the auth flow. Orchestration guide - verified_status values are unverified/verified/rejected (not pass/fail). - Agents report reported_done (not 'completed'). - initial_verified_status on import is honored only for a superadmin caller and its only value is 'verified'; documented the anti-RBAC-bypass guard. - Clarified reject semantics (auto_reset_on_rejection). mcp-server README - knowledge_export has no 'obsidian' format and its download needs LOOPCTL_USER_KEY. Public pages / discovery (code) - GET /api/v1/ now returns discovery/routes/wiki/mcp_server pointers so agents don't dead-end at the API root (+ OpenAPI schema + test). - GET /api/v1/routes described as a curated index (not exhaustive), points to the OpenAPI spec, and now lists the CoC v2 dispatch routes, recover-cap, acceptance_criteria, and the new knowledge endpoints. - Wiki index category order derived from present categories (drops retired :convention, includes all active categories) so no article is silently hidden. - Landing page: 'three agent-facing roles' wording. CHANGELOG - Backfilled the shipped agents'-KB endpoints (conflict resolution/merge, retrieval metrics, curation log, creativity primitives). mix precommit green (3091 tests, 0 failures; format, credo --strict, dialyzer).
…ed 1.2.0) The MCP server advertised version "1.2.0" in the handshake while the published npm package is 2.30.0 — an unintentional divergence. Derive the version from package.json at startup (npm always ships package.json in the tarball) so the handshake version tracks the package version and can't drift again. The mcp-server README's 1.2.0 deprecation notes stay accurate — they describe when the knowledge_agent_usage parameter behavior changed, not the current server version.
Sonnet 5 (API id 'claude-sonnet-5', released 2026-06-30) is the current Sonnet-tier model. Updated the illustrative model_name example strings in the OpenAPI schema, the MCP report_token_usage/report_story tool descriptions, and the PRD token-usage example from the prior claude-sonnet-4-5. Cosmetic only: model_name is a free-form string and cost_millicents is caller-reported, so recording a new model needs no code change. Test fixtures and historical user-story specs are intentionally left as-is.
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.
Why
Audited every public surface an AI agent (or human) reads to understand loopctl — the loopctl.com landing/docs pages, the API discovery endpoints, the README, the MCP server README, the orchestration guide, and the CHANGELOG — against ground truth (
router.exandmcp-server/index.js'sTOOLSarray). Goal: docs match reality so agents can accurately educate their users about what loopctl does and how to use it.Four parallel read-only audits produced the findings; each was independently re-verified against source before applying (that caught a wrong count — see below).
What changed
Tool count → 69 (verified against the
TOOLSarray; the 70thname:is thenew Server()registration, not a tool)knowledge_conflicts,knowledge_resolve_conflict,knowledge_curation_log,knowledge_retrieval_metrics.README
/projects/:project_id/ui-tests(the documented/ui_test_runspaths were unreachable — 404).GET /serves the HTML landing page (it does not redirect).Orchestration guide
verified_statusvalues areunverified/verified/rejected(doc saidpass/fail, which aren't in the enum).reported_done(doc saidcompleted).initial_verified_statuson import is honored only for a superadmin caller and its only value isverified— documented the anti-RBAC-bypass guard (the old example used a user key +"pass", which silently produced non-verified stories).auto_reset_on_rejection).mcp-server README
knowledge_exporthas noobsidianformat, and its download needsLOOPCTL_USER_KEY.MCP server version
version: "1.2.0"while the npm package is2.30.0— an unintentional divergence. Now derived frompackage.jsonat startup so it tracks the package version and can't drift again.Public pages / discovery (code)
GET /api/v1/now returnsdiscovery,routes,wiki, andmcp_serverpointers so agents hitting the API root have a path forward instead of dead-ending (+ OpenAPI schema + test).GET /api/v1/routesis now described as a curated index (not the exhaustive surface), points to the OpenAPI spec, and lists the CoC v2 dispatch routes,recover-cap,acceptance_criteria, and the new knowledge endpoints.:convention, includes all active categories) so no article is ever silently hidden.CHANGELOG
Verification
mix precommitgreen: 3091 tests, 0 failures; compile (warnings-as-errors),mix format,credo --strict, and dialyzer all clean.Notes
knowledge_agent_usageparameter behavior changed, not the current server version.