Design and task breakdown for collapsing the flat 10-section nav into
professional pillars and adding an IoT foundations knowledge pillar.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Remove the misleading hand-built model segment that adds extensions then asserts
the serialized JSON. That pattern proves nothing about swagger-core's annotation
pipeline (you're asserting a map you just inserted by hand).
Keep the focused test: read @Operation annotation via reflection, call
AnnotationsUtils.getExtensions(...) which IS swagger-core's real annotation→map
conversion, and assert both the x-dc3-ai key and its riskLevel=HIGH content.
End-to-end emission into /v3/api-docs is verified separately (Task 8).
Generate <op>-<stack>[-<registry>] compose shortcuts and test/coverage
targets in the Makefile, remove the install-hooks target and the
.githooks commit-msg linter, and document the design.
Update auth, gateway, architecture, quickstart, changelog, and superpowers design documents for the Principal identity model and OAuth-backed MCP server.
- Add mcp-server.md: full design for exposing OpenAPI interfaces as MCP
tools through the gateway, covering architecture, database model,
permission control (reusing dc3_resource/dc3_role_resource_bind),
HTTP vs gRPC analysis, dynamic tool refresh, and observability
- Register MCP Service in VitePress sidebar config
- Add entry to design index page
Separate the public docs (how to understand, deploy, and use IoT DC3) from
engineering material (design drafts, analyses, roadmaps, legacy operation
screenshots):
- add an internal archive area with its own nav, grouping design,
analysis, strategy, backlog, and legacy-operation sections
- migrate design, operation (data/device/driver/template), analyses, and
todo notes into the archive, preserving history
- refresh public docs: README (en/zh/ja/vi), operation guides
(agentic/concepts/data-commands/device-onboarding), architecture,
development, guide, quickstart, and modules
- promote the project overview to README.ai.md at the repo root