Skip to content

docs(repo): fix documentation accuracy, consistency, and completeness#5

Merged
zrosenbauer merged 4 commits intomainfrom
docs/review-fixes
Mar 12, 2026
Merged

docs(repo): fix documentation accuracy, consistency, and completeness#5
zrosenbauer merged 4 commits intomainfrom
docs/review-fixes

Conversation

@zrosenbauer
Copy link
Copy Markdown
Member

@zrosenbauer zrosenbauer commented Mar 12, 2026

Summary

  • Comprehensive review of all 32 docs across docs/ (public-facing) and contributing/ (internal) identified 28 issues; 24 non-subjective issues fixed across 19 files
  • Fixes span accuracy corrections, missing content, consistency improvements, and a new PR template
  • Cross-referenced all documentation against actual source code to verify accuracy

Changes

HIGH severity fixes

  • CLI dependency references: Replaced all yargs/@clack/prompts references with @kidd-cli/core in architecture.md, cli.md, and AGENTS.md (CLAUDE.md symlink)
  • Fork org name: Changed joggr/zpressjoggrdocs/zpress in contributor getting-started
  • Default sort order: Removed incorrect "(default)" from 'alpha' sort; clarified discovery order is the default
  • Missing icon config field: Added ZpressConfig.icon to configuration reference
  • Frontmatter outline type: Added missing 'deep' variant to main table
  • Throwing example in errors.md: Wrapped bare JSON.parse() in try/catch in the "Never Throw" section
  • PR title example scopes: Changed runtime/configpackages/core to match documented scopes

MEDIUM severity fixes

  • Architecture docs: Completed core module table (+12 files), sync pipeline (+4 steps), CLI command list (+3 commands)
  • generate command: Added "icon" to description ("banner, logo, and icon SVG assets")
  • Configuration reference: Added Required column to WorkspaceGroup table; fixed Entry content type to include sync function variant
  • Contributor getting-started: Added pnpm build before verification step
  • Developing a feature: Removed "test" from CI claims (test runner not yet configured)
  • Deployment guide: Standardized CLI invocation to npx zpress
  • Git standards: Added packages/ui and packages/zpress scopes; added release commit type
  • Error standards: Added _tag discriminator to all examples; noted HandlerResult as planned
  • Testing standards: Added Result-tuple testing section
  • Types standards: Noted type-fest not currently installed
  • Utilities standards: Resolved isNil contradiction (standalone vs predicate context)
  • New PR template: Created .github/PULL_REQUEST_TEMPLATE.md

Additional improvements

  • Added References sections to auto-discovery.md and sidebar-icons.md
  • Added Custom workspace groups section to workspaces.md
  • Fixed @clack/prompts purpose to "Sync engine prompts & output"
  • Fixed watcher file path in CLI concepts (src/lib/watcher.ts)

Testing

  • pnpm format:fix passes
  • All changes are documentation-only (no source code changes)
  • All fixes verified against actual source code before applying

Related Issues

N/A — proactive documentation quality improvement

Summary by CodeRabbit

  • New Features

    • Added CLI commands: setup, dump, and generate (generate now also emits an icon SVG).
    • Added support for custom workspace groups with names, descriptions, and icons.
    • Added top-level icon config and a 'deep' option for frontmatter outline.
  • Documentation

    • Updated deployment and CLI usage guidance; expanded contributing, architecture, and standards docs; added testing patterns for result-returning functions.
    • Added a PR template for consistent submissions.
  • Chores

    • Various formatting, scope, and wording cleanups across docs.

Address 24 verified issues found during comprehensive documentation review:

HIGH: Fix CLI dependency references (yargs → @kidd-cli/core) across architecture,
CLI concepts, and CLAUDE.md. Fix wrong GitHub org in contributor getting-started
(joggr → joggrdocs). Correct default sort order in auto-discovery guide (alpha →
discovery order). Add missing `icon` top-level config field to reference. Fix
`outline` type missing `'deep'` in frontmatter reference. Fix throwing example
in error handling standards. Fix PR title examples using undocumented scopes.

MEDIUM: Complete architecture module tables and sync pipeline steps. Fix generate
command description (add "icon"). Add required/optional indicators to WorkspaceGroup
table. Fix Entry content type. Add pnpm build step to contributor getting-started.
Resolve CI test contradiction. Standardize CLI invocation in deployment guide. Add
missing scopes to git-commits. Add release type to CLAUDE.md. Add _tag discriminator
to error examples. Add Result testing guidance. Fix type-fest recommendation. Resolve
isNil contradiction. Add PR template.

Co-Authored-By: Claude <noreply@anthropic.com>
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Mar 12, 2026

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: b155220a-5bdf-46b0-818a-41f942450852

📥 Commits

Reviewing files that changed from the base of the PR and between 16d8668 and 006a500.

📒 Files selected for processing (1)
  • contributing/concepts/architecture.md

📝 Walkthrough

Walkthrough

Repository documentation and contributing guides updated: new PR template added; CLI tooling references switched to @kidd-cli/core; new CLI commands documented; core sync/planning modules expanded; error interfaces gain _tag discriminants; config/docs add icon and workspace-group fields and 'deep' frontmatter option.

Changes

Cohort / File(s) Summary
Repository Metadata & Agents
\.github/PULL_REQUEST_TEMPLATE.md, AGENTS.md
Add PR template; update tech-stack entries and scopes (add packages/ui); minor formatting and versioning/release-flag edits.
Architecture & CLI Surface
contributing/concepts/architecture.md, contributing/concepts/cli.md
Document new CLI commands (setup, dump, generate); expand core sync/planning modules and pipeline; replace @clack/prompts/yargs references with @kidd-cli/core; watcher path moved.
Contribution Guides & Standards
contributing/guides/..., contributing/standards/...
Remove test from feature CI guide; update getting-started build/check commands and fork URL; expand commit scopes (packages/ui, packages/zpress); adjust PR title examples and formatting.
TypeScript Errors & Testing Guidance
contributing/standards/typescript/errors.md, .../testing.md, .../types.md, .../utilities.md
Add _tag discriminants to ParseError, ConfigError, HandlerError; update examples and testing patterns for Result<T,E>; adjust type-fest and es-toolkit recommendations.
Docs: Guides & References
docs/guides/..., docs/references/...
Add References sections; change CLI/CI invocations to npx @zpress/kit`` / pnpm zpress examples; add top-level `icon` config and workspace-group docs; allow `'deep'` in frontmatter outline; mention icon SVG generation.
Small doc/path tweaks
contributing/guides/developing-a-feature.md, contributing/concepts/cli.md (watcher path)
Minor CI step and path adjustments; watcher file relocated.

Sequence Diagram(s)

mermaid
sequenceDiagram
participant User as User
participant CLI as zpress CLI
participant Kidd as @kidd-cli/core
participant Core as Core Sync Pipeline
participant FS as Filesystem
rect rgba(200,230,255,0.5)
User->>CLI: run zpress generate / zpress setup / zpress dump
end
rect rgba(220,255,200,0.5)
CLI->>Kidd: hand off args & logging via @kidd-cli/core
Kidd->>Core: invoke command handler (planning, generate, dump)
Core->>FS: read/write workspace/config/assets/source-maps
FS-->>Core: return artifacts
Core-->>Kidd: report status/errors
Kidd-->>CLI: surface output/logs
CLI-->>User: display result/exit

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

Poem

🐰 I hopped through docs and ribboned threads,

New commands to sing and _tag_ beds,
From clack to Kidd I bounded light,
Icons, groups, and outlines deep by night,
A merry burrow of changes, tidy and bright.

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The PR title directly summarizes the main change: documentation fixes across accuracy, consistency, and completeness, which aligns with the changeset of 19 documentation files updated with corrections and improvements.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch docs/review-fixes

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 4

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
contributing/standards/typescript/errors.md (1)

204-214: ⚠️ Potential issue | 🟡 Minor

Add _tag to the remaining ParseError examples.

This section still returns { type, message } without the discriminator introduced earlier, so the page now documents two different ParseError shapes.

Suggested fix
 function parse(json: string): Result<Data, ParseError> {
   if (!json) {
-    return [{ type: 'parse_error', message: 'Empty input' }, null]
+    return [{ _tag: 'ParseError', type: 'parse_error', message: 'Empty input' }, null]
   }
 
   try {
     return [null, JSON.parse(json)]
   } catch {
-    return [{ type: 'parse_error', message: 'Invalid JSON' }, null]
+    return [{ _tag: 'ParseError', type: 'parse_error', message: 'Invalid JSON' }, null]
   }
 }
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@contributing/standards/typescript/errors.md` around lines 204 - 214, The
ParseError examples in the parse function return objects like { type:
'parse_error', message: ... } but omit the discriminator introduced earlier;
update both error returns in function parse to include the _tag discriminator
property (e.g., add _tag: 'ParseError' or whatever discriminator string your
types use) so the returned error shape matches the ParseError type used
elsewhere; modify the two error objects inside parse (the empty-input return and
the catch return) to include _tag alongside type and message.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@AGENTS.md`:
- Line 64: Replace the vague line "Config validated at boundaries" with an
explicit requirement that configuration must be validated using Zod at module
boundaries; update the AGENTS.md wording so it reads something like "Validate
configuration with Zod at module boundaries" and ensure any guidance or examples
in the surrounding text reference using Zod schemas and parse/parseAsync (or
safeParse) for validation so readers know exactly which library and API to use.

In `@contributing/concepts/architecture.md`:
- Around line 21-26: Update the table row for `@zpress/kit` to accurately
describe its public surface: replace "re-exports everything + provides the CLI
bin" with text that lists the actual public entry points and CLI surface, e.g.,
state that it exposes the main entry point ('.'), a './config' entry point, and
provides a CLI via the package's bin rather than exporting the CLI as an
importable module; edit the `@zpress/kit` row in the package table accordingly.

In `@contributing/standards/typescript/testing.md`:
- Around line 170-176: The test "should return error for missing file" asserts
the wrong ConfigError variant; update the assertion in the test that calls
loadConfig('/missing') so the error._tag/type matches a missing-file scenario
(e.g., set type: 'missing_file') or rename the test to reflect a missing-field
case—locate the test by the it(...) description and the loadConfig('/missing')
call and change the expected type from 'missing_field' to the correct variant
(or adjust the test name) so the assertion semantically matches the scenario.

In `@docs/references/cli.md`:
- Around line 114-120: Update the example command text so it follows the page's
canonical npx convention: replace the standalone "zpress generate" example with
"npx zpress generate" (i.e., change the occurrence of the string "zpress
generate" in the CLI example block to "npx zpress generate") so the docs
consistently use the npx form.

---

Outside diff comments:
In `@contributing/standards/typescript/errors.md`:
- Around line 204-214: The ParseError examples in the parse function return
objects like { type: 'parse_error', message: ... } but omit the discriminator
introduced earlier; update both error returns in function parse to include the
_tag discriminator property (e.g., add _tag: 'ParseError' or whatever
discriminator string your types use) so the returned error shape matches the
ParseError type used elsewhere; modify the two error objects inside parse (the
empty-input return and the catch return) to include _tag alongside type and
message.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 760b84bc-cfad-43b3-baef-106066a6d0d8

📥 Commits

Reviewing files that changed from the base of the PR and between ddb0cc3 and 0f3ae31.

📒 Files selected for processing (19)
  • .github/PULL_REQUEST_TEMPLATE.md
  • AGENTS.md
  • contributing/concepts/architecture.md
  • contributing/concepts/cli.md
  • contributing/guides/developing-a-feature.md
  • contributing/guides/getting-started.md
  • contributing/standards/git-commits.md
  • contributing/standards/git-pulls.md
  • contributing/standards/typescript/errors.md
  • contributing/standards/typescript/testing.md
  • contributing/standards/typescript/types.md
  • contributing/standards/typescript/utilities.md
  • docs/guides/auto-discovery.md
  • docs/guides/deployment.md
  • docs/guides/sidebar-icons.md
  • docs/guides/workspaces.md
  • docs/references/cli.md
  • docs/references/configuration.md
  • docs/references/frontmatter.md

Comment thread AGENTS.md Outdated
Comment thread contributing/concepts/architecture.md Outdated
Comment thread contributing/standards/typescript/testing.md Outdated
Comment thread docs/references/cli.md
- Restore explicit Zod validation requirement in AGENTS.md
- Tighten @zpress/kit surface-area description in architecture docs
- Fix mismatched error type in testing standard example
- Fix invalid `npx zpress` references to use `npx @zpress/kit` or bare `zpress`

Co-Authored-By: Claude <noreply@anthropic.com>
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

♻️ Duplicate comments (1)
contributing/standards/typescript/testing.md (1)

170-176: ⚠️ Potential issue | 🟡 Minor

Align the failure example with the asserted error variant.

This example still mixes a missing-file scenario (loadConfig('/missing')) with a missing_field assertion. Either change the fixture/scenario to a malformed config missing a required field, or update the expected type to the missing-file variant so the example stays semantically correct.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@contributing/standards/typescript/testing.md` around lines 170 - 176, The
test "should return error for missing field" currently calls
loadConfig('/missing') but asserts a 'missing_field' error; update the scenario
so they match by changing the fixture path passed to loadConfig to one that
represents a config missing a required field (e.g., '/missing_field' or
'/malformed_missing_field') so the assertion on _tag 'ConfigError' and type
'missing_field' is correct; locate the test case by the it(...) block and the
loadConfig call and update the fixture name accordingly (alternatively, if you
prefer to keep the '/missing' fixture, change the asserted type to
'missing_file').
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@contributing/concepts/architecture.md`:
- Around line 175-189: Update the documented pipeline steps in
contributing/concepts/architecture.md to match the actual execution order in
packages/core/src/sync/index.ts: reorder "Public asset copying" to appear early
(with the code's step number 0/1 as shown in the file), move "Planning page
discovery" to its real position after Collect pages/Generate home (reflecting
the code's placement at line ~90), add the missing "Write bare-bones README"
step (label it with the code's internal step number as used in sync/index.ts),
and adjust all step numbers to the internal sequence used in the code comments
(0, 1, 1.25, 1.5, 2, 2.1, 2.5, 3, 5, 6, 7, 8) so the list matches the
implementation.

---

Duplicate comments:
In `@contributing/standards/typescript/testing.md`:
- Around line 170-176: The test "should return error for missing field"
currently calls loadConfig('/missing') but asserts a 'missing_field' error;
update the scenario so they match by changing the fixture path passed to
loadConfig to one that represents a config missing a required field (e.g.,
'/missing_field' or '/malformed_missing_field') so the assertion on _tag
'ConfigError' and type 'missing_field' is correct; locate the test case by the
it(...) block and the loadConfig call and update the fixture name accordingly
(alternatively, if you prefer to keep the '/missing' fixture, change the
asserted type to 'missing_file').

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: ac94f92b-9481-4f39-b93e-d17417a35036

📥 Commits

Reviewing files that changed from the base of the PR and between 0f3ae31 and 16d8668.

📒 Files selected for processing (5)
  • AGENTS.md
  • contributing/concepts/architecture.md
  • contributing/standards/typescript/testing.md
  • docs/guides/deployment.md
  • docs/references/cli.md
🚧 Files skipped from review as they are similar to previous changes (1)
  • AGENTS.md

Comment thread contributing/concepts/architecture.md Outdated
zrosenbauer and others added 2 commits March 11, 2026 22:05
Reorder pipeline steps to match actual execution in sync/index.ts:
- Move public asset copying before manifest loading (step 3)
- Move planning page discovery after generate home (step 11)
- Merge source map building into copy pages step
- Add missing write README step (step 16)

Co-Authored-By: Claude <noreply@anthropic.com>
@zrosenbauer zrosenbauer merged commit 5bcfc48 into main Mar 12, 2026
1 check passed
@zrosenbauer zrosenbauer deleted the docs/review-fixes branch March 12, 2026 02:07
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