--- id: ITC-WP-0002 type: workplan title: "Service Surface Baseline CLI JSON API" domain: canon repo: info-tech-canon status: finished priority: high created: "2026-05-23" updated: "2026-05-23" depends_on_workplans: - ITC-WP-0001 state_hub_workstream_id: "b467e4da-6ce4-4608-a446-319427954b32" --- # ITC-WP-0002 - Service Surface Baseline CLI JSON API ## Goal Create the first practical service surface for InfoTechCanon: a JSON-oriented CLI, importable Python service layer, and minimal local API from the start. ## Intent The service should use `infospace-bench` facilities instead of inventing a parallel infospace runtime. The initial surface should be small, explicit, and usable by downstream agents and tools. ## Tasks ### T01 - Package skeleton ```task id: ITC-WP-0002-T01 status: done priority: high state_hub_task_id: "0d843b8f-0bba-4bd8-8879-5641d2b50848" ``` - Add a minimal Python package for InfoTechCanon service code. - Add `pyproject.toml` with local dependency expectations for `infospace-bench`. - Keep runtime dependencies narrow. ### T02 - CLI commands ```task id: ITC-WP-0002-T02 status: done priority: high state_hub_task_id: "030955d2-e6af-48d8-a617-943cf4f10628" ``` - Add commands that return JSON by default: - inspect canon - list artifacts - list standards - list models - validate - graph - profile inspect - Use structured errors. ### T03 - Python service layer ```task id: ITC-WP-0002-T03 status: done priority: high state_hub_task_id: "a926fa1d-7dc0-4450-84c9-c0d49b3744ea" ``` - Wrap infospace loading, artifact listing, validation, metrics, and graph export behind stable service functions. - Keep domain-specific canon logic separate from generic infospace-bench logic. ### T04 - API baseline ```task id: ITC-WP-0002-T04 status: done priority: high state_hub_task_id: "070ef996-cf45-47ed-b9d8-1e313c9b0e22" ``` - Add a minimal local API for read-only canon inspection. - Endpoints should mirror CLI contracts where practical. - Prefer JSON responses suitable for agents and tools. - Defer authentication, remote deployment, and multi-tenant concerns. ## Non-Goals - Do not build a large web application. - Do not duplicate infospace-bench lifecycle implementation. - Do not introduce semantic changes to canon documents in this workplan. ## Acceptance - The repo exposes CLI, JSON, and API entry points. - Commands can inspect the `infospace/` root. - API and CLI outputs share the same service-layer contracts. - Tests cover the first happy paths and structured failures. ## Implementation Notes - Added the `info_tech_canon` Python package and `info-tech-canon` console script definition. - Added JSON-first CLI commands for inspection, artifact/model/standard lists, validation, graph export, and profile inspection. - Added a read-only local HTTP API mirroring the CLI contracts. - Added service, CLI, and API tests for the baseline behavior.