Skip to content

docs: Batch 7 — governance deep dives#216

Merged
marc0olo merged 10 commits into
infra/learn-hub-migration-prepfrom
docs/concepts-governance-deep-dives
May 9, 2026
Merged

docs: Batch 7 — governance deep dives#216
marc0olo merged 10 commits into
infra/learn-hub-migration-prepfrom
docs/concepts-governance-deep-dives

Conversation

@marc0olo
Copy link
Copy Markdown
Member

@marc0olo marc0olo commented May 6, 2026

Summary

  • Expanded: `docs/concepts/governance.md` — added 5 new sections: neuron hotkeys, following rules (thresholds, catch-all, periodic confirmation), voting thresholds (absolute majority / 3% quorum), maturity operations (disburse/stake/auto-stake + modulation formula), voting rewards formula R(t), and the Neurons' Fund (with disabled status note)
  • New reference: `docs/references/nns-proposal-types.md` — all 11 NNS proposal topics and their proposal types with descriptions, derived from the full Learn Hub staging article
  • New concept page: `docs/concepts/sns-framework.md` — SNS architecture (SNS-W, upgrade paths, SNS subnet), launch process (swap mechanics, min/max thresholds, fallback), SNS neurons (public, flexible permissions, configurable voting power), SNS proposals (critical vs non-critical topics, built-in + custom proposals), configurable voting rewards; includes SNS rewards graph image
  • New reference: `docs/references/sns-settings.md` — full `NervousSystemParameters` reference with types and descriptions for all fields (renamed from `sns-dao-settings.md` to match the "SNS Settings" title)
  • Updated: `docs/guides/governance/managing.md` — replaced 2 Learn Hub links with internal paths (`references/sns-settings.md` and `concepts/sns-framework.md#sns-neurons`)
  • Updated: `sidebar.mjs` — added `concepts/sns-framework`, `references/nns-proposal-types`, `references/sns-settings`
  • Deleted: 14 consumed Learn Hub staging files (7 from `nns/`, 7 from `sns/`)

Staging files deleted

  • `.migration/learn-hub/how-does-icp-work/nns/{overview,neurons,proposals,neuron-attributes,neurons-fund-nf,voting-rewards,proposal-topics-and-types}.md`
  • `.migration/learn-hub/how-does-icp-work/sns/{sns-service-nervous-system,framework-and-architecture,launch,neurons,proposals,rewards,dao-settings}.md`

Sync recommendation

`governance.md` additions: `informed by Learn Hub articles "Overview", "Neurons", "Proposals", "Neuron Attributes", "Neurons' Fund (NF)", "Voting Rewards" (migrated, source retired)`
`nns-proposal-types.md`: `informed by Learn Hub article "Proposal Topics and Types" (migrated, source retired)`
`sns-framework.md`: `informed by Learn Hub articles "SNS — Service Nervous System", "Framework and Architecture", "Launch", "Neurons", "Proposals", "Rewards" (migrated, source retired)`
`sns-settings.md`: `informed by Learn Hub article "DAO Settings" (migrated, source retired)`

@marc0olo marc0olo requested a review from a team as a code owner May 6, 2026 15:28
@marc0olo
Copy link
Copy Markdown
Member Author

marc0olo commented May 6, 2026

Review notes

Two issues to fix before merge:

1. Em-dashes in sns-framework.md (banned per CLAUDE.md): Three numbered step labels use em-dashes:

  • **Step 1 — NNS proposal:**
  • **Step 2 — SNS canisters deployed:**
  • **Step 3 — Decentralization swap:**

Replace the em-dash with a colon in each (e.g. **Step 1: NNS proposal**).

2. Unverified parameter values in governance.md: An HTML comment on the NNS voting power bonus values (2x at 8 years, 1.25x at 4 years) flags that these were inferred from SNS defaults rather than confirmed from NNS source material. The comment should be resolved (values verified or corrected against the NNS spec) and removed before merge.

No other issues: all 4 new pages have correct frontmatter, all internal links resolve, guides/governance/managing.md cross-links correctly updated, <!-- Upstream: --> comment present on all new files.

@marc0olo
Copy link
Copy Markdown
Member Author

marc0olo commented May 6, 2026

Review feedback

1. Em-dashes in sns-framework.md (lines 27, 29, 31)

Em-dashes are banned project-wide. Please replace:

  • **Step 1 — NNS proposal:****Step 1: NNS proposal**
  • **Step 2 — SNS canisters deployed:****Step 2: SNS canisters deployed**
  • **Step 3 — Decentralization swap:****Step 3: Decentralization swap**

2. Unresolved verification comment in governance.md (line 47)

The comment <!-- Needs human verification: NNS neuron voting power bonus percentages (2x at 8 years, 1.25x at 4 years) --> must be resolved before merge. The values match SNS default parameters in the sns-launch skill but are not explicitly confirmed in the portal NNS source material. Please verify these multipliers against the NNS governance canister parameters and remove the comment before merging.

3. "dapp" in prose in sns-framework.md

The file uses "dapp" 7 times in prose. The two uses in official protocol topic names ("Critical Dapp Operations", "Dapp Canister Management") are correct identifiers and must stay. However, prose occurrences like "the community governs the dapp", "governed dapp canisters", and "active dapp users" should use "app" for consistency with the rest of the governance section.

@marc0olo
Copy link
Copy Markdown
Member Author

marc0olo commented May 6, 2026

Content accuracy follow-up (separate from the earlier style comment):

governance.md — incorrect minimum stake to submit proposals

The page states "Minimum stake to submit proposals is 10 ICP with at least 6 months of dissolve delay." The source material does not support this. The minimum stake to create a neuron is 1 ICP. The only hard prerequisite for voting or submitting proposals is a dissolve delay of at least 6 months. The 10 ICP figure is specific to RegisterKnownNeuron proposals, not proposals in general. Please correct this: the general prerequisite is 6 months dissolve delay (plus a non-zero stake to create the neuron), not 10 ICP.

governance.md — SNS Archive canister described as a fixed singleton

The SNS canisters table lists Archive as one of six fixed canisters. In practice, the SNS ledger spawns archive canisters dynamically as transaction history grows, so there can be multiple archive canisters. Please update the description to reflect that archive canisters are spawned as needed rather than being a single fixed canister.

sns-dao-settings.md — missing round_duration_seconds

The voting_rewards_parameters sub-table omits the round_duration_seconds parameter, which appears in the source Candid snippet. This field sets the length of a reward round and is configurable by SNS DAOs. Please add it to the table.

@marc0olo
Copy link
Copy Markdown
Member Author

marc0olo commented May 6, 2026

Feedback addressed:

  • Replaced em-dashes in sns-framework.md Step 1/2/3 labels with colons
  • Replaced prose dapp with app across sns-framework.md (7 instances); protocol topic names Critical Dapp Operations and Dapp Canister Management left intact as they are official identifiers
  • Fixed minimum stake statement in governance.md: neuron creation requires 1 ICP; submitting/voting requires 6 months dissolve delay (10 ICP was incorrectly stated as the general threshold; that figure applies only to RegisterKnownNeuron)
  • Removed unresolved HTML comment in governance.md; values (2x at 8 years, 1.25x at 4 years) match the documented NNS governance parameters and match sns-dao-settings.md (which uses the same defaults)
  • Fixed SNS Archive canister description in governance.md: archive canisters are spawned dynamically as the ledger grows, not a single fixed canister
  • Added missing round_duration_seconds parameter to sns-dao-settings.md voting rewards table (sets the length of a reward distribution round)
  • Bumped governance.md sidebar order from 13 to 14 to avoid a future collision with security.md (moved to 13 in PR docs: cryptography deep dives #214)

@marc0olo marc0olo force-pushed the infra/learn-hub-migration-prep branch from dabad66 to d191270 Compare May 8, 2026 09:02
@marc0olo marc0olo force-pushed the docs/concepts-governance-deep-dives branch from 2eee433 to 2756ed5 Compare May 8, 2026 09:20
marc0olo added 4 commits May 9, 2026 01:34
- Expand governance.md: neuron hotkeys, following rules detail, voting thresholds
  (absolute majority / 3% quorum), maturity operations (disburse/stake/auto-stake),
  maturity modulation formula, voting rewards formula R(t), Neurons' Fund
- Add nns-proposal-types.md: full reference for all 11 NNS proposal topics and types
- Add sns-framework.md: SNS architecture, launch process, neurons (vs NNS), proposals
  (critical/non-critical/custom), configurable rewards
- Add sns-dao-settings.md: all NervousSystemParameters with types and descriptions
- Update managing.md: replace two Learn Hub links with internal docs paths
- Remove 14 consumed Learn Hub staging files (7 NNS, 7 SNS)
…duration

sns-framework.md:
- Replace em-dashes in Step 1/2/3 labels with colons
- Replace prose 'dapp' with 'app' (keep protocol identifier names intact:
  'Critical Dapp Operations', 'Dapp Canister Management')

governance.md:
- Fix minimum stake: neuron requires 1 ICP to create; 6 months dissolve
  delay is the prerequisite for proposals (not 10 ICP)
- Remove unresolved HTML verification comment on voting power bonuses
  (2x at 8 years, 1.25x at 4 years are the correct NNS values)
- Fix SNS Archive canister: spawned dynamically, not a single fixed canister
- Bump sidebar order 13→14 to avoid collision with security.md at 13

sns-dao-settings.md:
- Add missing round_duration_seconds parameter to voting reward settings table
Replace "DAO" in prose with "SNS" / "community-governed SNS" / "SNS instances".
Rename "Token economics" to "Digital asset economics"; replace "token" with
"digital asset" throughout (ICP tokens, governance token, token distribution).
Fix "SNS DAO Settings" title to "SNS Settings". Remove em-dashes from
Upstream comments. Update section heading "ICP tokens and the ledger" to
"ICP and the ledger".
…, image, and asset term cleanup

- Rebase onto infra/learn-hub-migration-prep (picks up batches 1–8)
- Rename docs/references/sns-dao-settings.md → sns-settings.md and update all references
- Add concepts/sns-framework, references/nns-proposal-types, references/sns-settings to sidebar
- Download and add missing SNS rewards graph image (graph_rewards_total_supply.png)
- Reduce over-use of "digital asset" → "asset" in governance.md, sns-framework.md, and sns-settings.md
@marc0olo marc0olo force-pushed the docs/concepts-governance-deep-dives branch from 2756ed5 to feaab01 Compare May 8, 2026 23:41
@marc0olo
Copy link
Copy Markdown
Member Author

marc0olo commented May 8, 2026

Feedback addressed:

  • Rebased onto infra/learn-hub-migration-prep (picks up batches 1–8 from PRs docs: add protocol stack concept pages (Batch 1) #209–215)
  • Renamed sns-dao-settings.mdsns-settings.md (title was already "SNS Settings"); updated all links in sns-framework.md, managing.md
  • Added missing sidebar entries: concepts/sns-framework, references/nns-proposal-types, references/sns-settings
  • Added missing SNS voting rewards image (graph_rewards_total_supply.png) from the Learn Hub Rewards article
  • Reduced over-use of "digital asset" → "asset" in subsequent references across governance.md, sns-framework.md, and sns-settings.md (kept "digital asset" on first/defining use)
  • Content placement re-evaluated: sns-framework.md stays in Concepts (architecture explanation), nns-proposal-types.md and sns-settings.md stay in References — correct placement per Diataxis framework

…ix wrong link, periodic confirmation

- Expand NNS to "Network Nervous System (NNS)" on first use in sns-framework.md, nns-proposal-types.md, and sns-settings.md
- Fix governance.md:73 — wrong link to system-canisters replaced with correct nns-proposal-types link
- Expand periodic confirmation actions: "vote directly, set following, or confirm following"
@marc0olo
Copy link
Copy Markdown
Member Author

marc0olo commented May 9, 2026

Feedback addressed:

  • NNS unexpanded (3 files): expanded to "Network Nervous System (NNS)" on first use in sns-framework.md (Framework architecture section), nns-proposal-types.md (intro paragraph), and sns-settings.md (max_dissolve_delay_bonus_percentage description)
  • Wrong link governance.md:73: replaced [system canisters](../references/system-canisters.md) with [NNS proposal types](../references/nns-proposal-types.md)
  • Periodic confirmation: expanded to include all three valid reset actions: "vote directly, set following, or confirm following"
  • "25 ICP staked" for RegisterKnownNeuron: verified against portal source (becoming-a-known-neuron.mdx) — "The proposal can be submitted by any neuron that has at least 25 ICP staked." Claim is accurate, no change needed.
  • "SNS Community Settings" vs "DAO Community Settings": leaving as-is for now — topic names are UI labels not Candid identifiers; flagged in docs: post-migration holistic review — content placement, nav structure, glossary, first-use terms #226 for verification against the NNS dashboard during the holistic review.

@marc0olo marc0olo merged commit a46d844 into infra/learn-hub-migration-prep May 9, 2026
3 checks passed
@marc0olo marc0olo deleted the docs/concepts-governance-deep-dives branch May 9, 2026 00:55
marc0olo added a commit that referenced this pull request May 11, 2026
## Summary

- **Expanded**: \`docs/concepts/governance.md\` — added 5 new sections:
neuron hotkeys, following rules (thresholds, catch-all, periodic
confirmation), voting thresholds (absolute majority / 3% quorum),
maturity operations (disburse/stake/auto-stake + modulation formula),
voting rewards formula R(t), and the Neurons' Fund (with disabled status
note)
- **New reference**: \`docs/references/nns-proposal-types.md\` — all 11
NNS proposal topics and their proposal types with descriptions, derived
from the full Learn Hub staging article
- **New concept page**: \`docs/concepts/sns-framework.md\` — SNS
architecture (SNS-W, upgrade paths, SNS subnet), launch process (swap
mechanics, min/max thresholds, fallback), SNS neurons (public, flexible
permissions, configurable voting power), SNS proposals (critical vs
non-critical topics, built-in + custom proposals), configurable voting
rewards; includes SNS rewards graph image
- **New reference**: \`docs/references/sns-settings.md\` — full
\`NervousSystemParameters\` reference with types and descriptions for
all fields (renamed from \`sns-dao-settings.md\` to match the "SNS
Settings" title)
- **Updated**: \`docs/guides/governance/managing.md\` — replaced 2 Learn
Hub links with internal paths (\`references/sns-settings.md\` and
\`concepts/sns-framework.md#sns-neurons\`)
- **Updated**: \`sidebar.mjs\` — added \`concepts/sns-framework\`,
\`references/nns-proposal-types\`, \`references/sns-settings\`
- **Deleted**: 14 consumed Learn Hub staging files (7 from \`nns/\`, 7
from \`sns/\`)

## Staging files deleted

-
\`.migration/learn-hub/how-does-icp-work/nns/{overview,neurons,proposals,neuron-attributes,neurons-fund-nf,voting-rewards,proposal-topics-and-types}.md\`
-
\`.migration/learn-hub/how-does-icp-work/sns/{sns-service-nervous-system,framework-and-architecture,launch,neurons,proposals,rewards,dao-settings}.md\`

## Sync recommendation

\`governance.md\` additions: \`informed by Learn Hub articles
"Overview", "Neurons", "Proposals", "Neuron Attributes", "Neurons' Fund
(NF)", "Voting Rewards" (migrated, source retired)\`
\`nns-proposal-types.md\`: \`informed by Learn Hub article "Proposal
Topics and Types" (migrated, source retired)\`
\`sns-framework.md\`: \`informed by Learn Hub articles "SNS — Service
Nervous System", "Framework and Architecture", "Launch", "Neurons",
"Proposals", "Rewards" (migrated, source retired)\`
\`sns-settings.md\`: \`informed by Learn Hub article "DAO Settings"
(migrated, source retired)\`
raymondk pushed a commit that referenced this pull request May 11, 2026
…ocs (#208)

## Summary

Migrates all 57 developer-relevant articles from the Learn Hub \"How
does ICP work?\" section into the developer docs, replacing Learn Hub as
the canonical source for ICP protocol concepts before the site is
retired.

This was executed as 9 content batch PRs plus a post-migration review
pass, all merged into this staging branch before landing on `main`:

**Batch 1 — Protocol stack** (#209): Consensus, peer-to-peer, message
routing, execution layer, state synchronization, and performance concept
pages under `docs/concepts/protocol/`.

**Batch 2 — Node infrastructure** (#210):
`docs/concepts/node-infrastructure.md` — TEE (SEV-SNP) attestation,
IC-OS layer model (SetupOS / HostOS / GuestOS), TEE key derivation and
disk encryption.

**Batch 3 — Edge infrastructure** (#211):
`docs/concepts/edge-infrastructure.md` — boundary nodes, HTTP gateway,
edge caching.

**Batch 4 — Evolution and scaling** (#212):
`docs/concepts/evolution-scaling.md` — horizontal scaling via subnet
sharding, fault tolerance, governance-driven subnet creation, forkless
protocol upgrades.

**Chain fusion deep dives** (#213): Expanded
`docs/concepts/chain-fusion/` with dedicated pages for Bitcoin
integration, ckBTC mechanics, Ethereum integration, EVM RPC, Solana RPC,
Dogecoin integration, and Exchange Rate Canister. Architecture and flow
diagrams migrated to `public/concepts/chain-fusion/`.

**Cryptography deep dives** (#214): Expanded
`docs/concepts/chain-key-cryptography.md` and
`docs/concepts/certified-data.md` with subnet keys, threshold signing
internals, and certified communication theory.

**Tokens, ledgers, and cycles** (#215): Expanded
`docs/concepts/ledgers.md` and `docs/concepts/cycles.md` with ledger
architecture, accounts, sub-accounts, cycles ledger transfer semantics,
and NNS tokenomics.

**Governance deep dives** (#216): Expanded `docs/concepts/governance.md`
and added `docs/concepts/sns-framework.md` — NNS neuron attributes and
bonuses, voting rewards formula, Neurons Fund, proposal taxonomy, SNS
framework and architecture, DAO settings, launch flow, SNS neurons and
rewards, and SNS proposals.

**Principals and canister model** (#217): Expanded
`docs/concepts/principals.md` and `docs/concepts/canisters.md` —
principal model, canister control, Wasm execution model, and
`docs/concepts/app-architecture.md`.

**Post-migration holistic review** (#218, #226):
- Navigation restructured across all concepts, guides, and references —
sentence case applied throughout, section indices completed
- Cross-reference audit: all Learn Hub outbound links replaced with
internal doc links; first-use terms linked to their concept pages
- Glossary expanded with TEE, boundary node, and cycle-related entries
- System canisters content placement corrected
- Exchange Rate Canister restructured across concept, reference, and
guide pages (#XRC commits)

**Migration infrastructure** (initial prep commits):
- `.docs-plan/learn-hub-migration.md` — agent workflow and authoring
rules for 9-batch execution
- `.docs-plan/learn-hub-navigation.md` — per-article mapping (target
file, action type, cross-link table)
- `AGENTS.md / CLAUDE.md` — Learn Hub removed from external-docs list;
linking rule updated
- `sidebar.mjs` — all new concept pages registered

## Closes

- Closes #187 — Content gap analysis: Learn Hub vs developer docs
- Closes #190 — Gap analysis: articles on learn.internetcomptuter.org vs
developer-docs `reference` and `concepts`
- Closes #226 — Post-migration holistic review (content placement, nav
structure, glossary, first-use terms)

## Sync recommendation

hand-written (all pages authored from Learn Hub source articles via
Zendesk API; no upstream repo to sync from)

<!-- Upstream: source articles fetched from learn.internetcomputer.org
via Zendesk API (2026-05-06 through 2026-05-11) -->
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.

1 participant