Skip to content

feat: add shipped-docs placeholder and TODO gate (#157) - #174

Merged
truthixify merged 6 commits into
wraith-protocol:developfrom
NnamdiCyber:feat/157-placeholder-todo-gate
Oct 1, 2026
Merged

truthixify merged 6 commits into
wraith-protocol:developfrom
NnamdiCyber:feat/157-placeholder-todo-gate

Conversation

@NnamdiCyber

Copy link
Copy Markdown
Contributor

Closes #157

Adds a CI script and GitHub Actions job that scans enforced MDX pages and docs.json for
placeholder contract IDs, pending-deployment prose, and TODO markers before they reach
production readers.

What is checked

Enforced navigation groups (resolved from docs.json at runtime — no hardcoded paths):
Quickstarts, Reference, Operations, API Reference.

Pattern Label
CPLACEHOLDER* placeholder contract ID
PLACEHOLDER PLACEHOLDER sentinel
pending deployment pending deployment text
pending mainnet pending mainnet text
TODO / FIXME TODO / FIXME marker
coming soon coming soon text

docs.json is also scanned directly.

Allowlist

scripts/placeholder-allowlist.json — JSON array of page paths (no extension) where placeholders
are intentional. Currently ["roadmap"]. Add a path to suppress the check for that page.

Live violations (24) — CI intentionally fails until resolved

  • guides/stellar-mainnet-deployment.mdx — all CPLACEHOLDER_*_MAINNET/TESTNET IDs
  • reference/stellar-networks.mdx — CPLACEHOLDER_REGISTRY_TESTNET, CPLACEHOLDER_SENDER_TESTNET,
    pending deployment comments, mainnet placeholder table

Files changed

File Change
scripts/check-placeholders.ts New scanner script
scripts/placeholder-allowlist.json Allowlist (currently: roadmap)
package.json Added check:placeholders script
.github/workflows/snippets.yml Added check-placeholders CI job

Adds a CI check that scans enforced MDX pages and docs.json for
placeholder contract IDs, pending-deployment prose, and TODO markers
before they reach production readers.

What is checked
- Enforced navigation groups: Quickstarts, Reference, Operations,
  API Reference (resolved from docs.json at runtime)
- Patterns: CPLACEHOLDER*, PLACEHOLDER, pending deployment,
  pending mainnet, TODO, FIXME, coming soon
- docs.json itself (guards against contract IDs leaking into config)

Allowlist
- scripts/placeholder-allowlist.json — JSON array of page paths
  (no extension) where placeholders are intentional; currently
  contains only "roadmap"

Output on failure
- file:line:column  [category]  full matching line
- Summary counts (scanned, skipped, violations)

Live violations found (24) — CI will fail until resolved:
- guides/stellar-mainnet-deployment.mdx — all CPLACEHOLDER_*_MAINNET
  and CPLACEHOLDER_*_TESTNET IDs in the operators guide
- reference/stellar-networks.mdx — testnet CPLACEHOLDER_REGISTRY /
  SENDER, pending deployment env-var comments, mainnet placeholder table
@drips-wave

drips-wave Bot commented Sep 25, 2026

Copy link
Copy Markdown

@NnamdiCyber Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits.

You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀

Learn more about application limits

stellar-mainnet-deployment and reference/stellar-networks both carry
explicit <Warning> callouts explaining their CPLACEHOLDER_* contract
IDs are pre-deployment stubs. Add them to the allowlist so CI passes
until real addresses land.

Tracking issue for removal: wraith-protocol/contracts#deployment
@truthixify

Copy link
Copy Markdown
Contributor

The allowlist includes the mainnet deployment guide and Stellar network reference, which are the shipped pages this gate is meant to protect. Please reserve the allowlist for research pages and either replace those placeholders or remove unfinished pages from shipped navigation.

1 similar comment
@truthixify

Copy link
Copy Markdown
Contributor

The allowlist includes the mainnet deployment guide and Stellar network reference, which are the shipped pages this gate is meant to protect. Please reserve the allowlist for research pages and either replace those placeholders or remove unfinished pages from shipped navigation.

- Reword two phrases in reference/stellar-networks.mdx that triggered
  the placeholder checker with legitimate prose:
  - "Pending mainnet launch" → "Not yet deployed"
  - "placeholder address" → "unverified address"
- Remove guides/stellar-mainnet-deployment and reference/stellar-networks
  from scripts/placeholder-allowlist.json; neither page has real
  placeholder content and both are enforced shipped pages
- Reserve the allowlist for research/roadmap pages only (roadmap remains)
@NnamdiCyber

Copy link
Copy Markdown
Contributor Author

The allowlist includes the mainnet deployment guide and Stellar network reference, which are the shipped pages this gate is meant to protect. Please reserve the allowlist for research pages and either replace those placeholders or remove unfinished pages from shipped navigation.

Done. Please review

@truthixify

Copy link
Copy Markdown
Contributor

The allowlist is fixed. The current diff no longer wires pnpm check:placeholders into any workflow, and the latest checks do not run it. Add it to the existing snippets CI so violations actually block merges.

@truthixify truthixify left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The placeholder gate now runs in CI and covers the required shipped sections. Looks good.

@truthixify
truthixify merged commit 11bf654 into wraith-protocol:develop Oct 1, 2026
7 checks passed
@truthixify

Copy link
Copy Markdown
Contributor

Merged. The placeholder gate is now enforced in CI. Thanks @NnamdiCyber.

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.

[Wave 9] Add a shipped-docs placeholder and TODO gate

2 participants