Files
info-tech-canon/workplans/ITC-WP-0002-service-surface-cli-json-api.md

112 lines
2.9 KiB
Markdown

---
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.