Skip to content

refactor(reference): split ic-interface-spec into 7 focused sub-pages#188

Merged
marc0olo merged 17 commits intomainfrom
infra/ic-interface-spec-split
May 4, 2026
Merged

refactor(reference): split ic-interface-spec into 7 focused sub-pages#188
marc0olo merged 17 commits intomainfrom
infra/ic-interface-spec-split

Conversation

@marc0olo
Copy link
Copy Markdown
Member

@marc0olo marc0olo commented May 4, 2026

Summary

  • Replaces the 483 KB docs/reference/ic-interface-spec.md monolith with docs/reference/ic-interface-spec/ containing 7 focused pages, one per major section
  • All 204 heading anchors remapped; cross-file (#anchor) references updated to (./target.md#anchor) by scripts/split_ic_interface_spec.py
  • abstract-behavior.md (formal state machine notation, 207 KB) carries a note directing application developers to the practical sections
  • Fixes page-size-markdown and page-size-html afdocs check failures from issue infra: agent-friendly docs spec v0.5.0 compliance gaps #181

Page mapping

File Content
index.md Introduction, Pervasive concepts, System state tree
https-interface.md HTTPS Interface
canister-interface.md Canister module format + System API
management-canister.md Management canister + Bitcoin + Provisional APIs
certification.md Certification + HTTP Gateway protocol
abstract-behavior.md Abstract behavior (formal state machine spec)
changelog.md Changelog

Also updated

  • docs/reference/index.md: link updated to ic-interface-spec/index.md
  • AGENTS.md / CLAUDE.md: portal bump sync checklist updated with section-to-file mapping table so future portal diffs can be applied to the correct file
  • .docs-plan/decisions.md: decision recorded with rationale and sync guidance

Sync recommendation

informed by dfinity/portal — docs/references/ic-interface-spec.md

Replaces the 483 KB monolith docs/reference/ic-interface-spec.md with a
docs/reference/ic-interface-spec/ directory containing one page per major
section of the spec:

  index.md             — Introduction, Pervasive concepts, System state tree
  https-interface.md   — HTTPS Interface
  canister-interface.md — Canister module format + System API
  management-canister.md — Management canister + Bitcoin + Provisional APIs
  certification.md     — Certification + HTTP Gateway protocol
  abstract-behavior.md — Abstract behavior (formal state machine)
  changelog.md         — Changelog

All 204 heading anchors remapped; cross-file (#anchor) references updated
to (./target.md#anchor) via split_ic_interface_spec.py. Abstract behavior
carries a note directing application developers to practical sections.

Fixes page-size-markdown and page-size-html afdocs check failures (#181).

Also updates:
- docs/reference/index.md: link to ic-interface-spec/index.md
- AGENTS.md (CLAUDE.md): sync checklist updated with section-to-file map
- .docs-plan/decisions.md: decision recorded
@marc0olo marc0olo requested a review from a team as a code owner May 4, 2026 13:17
marc0olo added 7 commits May 4, 2026 15:33
- 4 depth bugs in split files: cycles-costs.md (×3 in canister-interface.md)
  and bitcoin.mdx (management-canister.md) needed extra path level
- 16 bare links to deleted ic-interface-spec.md across concepts/, guides/,
  and reference/ — each routed to the correct sub-page
- 10 anchor links in http-gateway-spec.md updated to new sub-page paths;
  absolute /references/ URLs converted to relative ./ic-interface-spec/ paths
- 6 stale links in internet-identity-spec.md (missed in review)
- Link replacement comments updated throughout to reflect new paths
… and internet-identity-spec

Both files contain manually adapted links pointing into the split
ic-interface-spec/ sub-pages. Without explicit guidance, agents syncing
these files would not know to convert portal/upstream absolute URLs to
the correct relative sub-page paths.

Adds:
- Step 3 (http-gateway-spec) expanded with link adaptation step and
  grep command to detect newly introduced ic-interface-spec links
- internetidentity per-submodule table row updated with note reference
- New link adaptation block for internet-identity-spec.md with the
  same detection command and anchor lookup fallback
- certification.md: fix wrong-depth link ./http-gateway-spec.md → ../http-gateway-spec.md
- abstract-behavior.md: remove banned em-dash in :::note admonition
- changelog.md: add missing 0.59.0 entry (sender_info / msg_caller_info_* / list_canisters)
- CLAUDE.md: clarify changelog source is _attachments/interface-spec-changelog.md, not ic-interface-spec.md; add git log command for that file
raymondk
raymondk previously approved these changes May 4, 2026
marc0olo added 7 commits May 4, 2026 19:22
…ke https-interface/ are not treated as external
… nav consistency

- Move all 16 reference pages and ic-interface-spec/ subdirectory
- Update all 75 internal links across 42 files
- Update sidebar.mjs slugs and autogenerate directory
- Update AGENTS.md paths, project structure, and section list
- Update .docs-plan/decisions.md paths
- Build verified: 159 pages, 0 errors
@marc0olo marc0olo requested a review from raymondk May 4, 2026 22:01
@marc0olo marc0olo merged commit 3005d0f into main May 4, 2026
7 checks passed
@marc0olo marc0olo deleted the infra/ic-interface-spec-split branch May 4, 2026 22:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants