Skip to content

docs: track the contributor-essential documentation - #11

Closed
hsusul wants to merge 3 commits into
mainfrom
docs/track-contributor-docs
Closed

docs: track the contributor-essential documentation#11
hsusul wants to merge 3 commits into
mainfrom
docs/track-contributor-docs

Conversation

@hsusul

@hsusul hsusul commented Aug 22, 2026

Copy link
Copy Markdown
Owner

Stacked on #9 and #10 — merge those first.

Problem

.gitignore had *.md + /docs/, so a fresh clone contained exactly one markdown file: README.md. All 34 docs, 6 ADRs, AGENTS.md, and CLAUDE.md were untracked local files.

That contradicts the repo's own rules. CLAUDE.md opens by calling AGENTS.md "the canonical contributor guide," and the sync rules say to update the canonical doc in the same change — neither is actionable when the files don't exist for anyone but the maintainer.

What's now tracked (20 files)

AGENTS.md, CLAUDE.md, docs/DOCS_INDEX.md, and docs/{architecture,agents,development} — what a contributor needs to build correctly and to know which doc a change must update.

What stays local, and why

This repository is public. These are deliberately not published:

Path Reason
docs/product/ Strategy, roadmap, PRD — unshipped plan
docs/design/ Unshipped design and wireframes
docs/decisions/ ADR rationale

The ignore rules now name these explicitly with the reason, instead of blanket-ignoring every .md. AUDIT_LOG.md, POLISH_LOG.md, and audit-goal.txt are named too — previously they were only incidentally caught by the blanket rule.

Keeping the map honest

Published docs reference internal ones. Rather than delete that information (it's real and useful to the maintainer), it's labelled:

  • DOCS_INDEX.md is split into "Published in this repository" and "Internal — not published", the latter unlinked.
  • 18 in-prose references across AGENTS.md, CLAUDE.md, the five agent docs, and two architecture docs are marked *(internal)*.

A reference you can't open now reads as internal by design, not as a broken link.

Verification

  • All 22 relative links in the tracked set resolve.
  • None points at a gitignored path — checked with git check-ignore, not just local file existence, so this is validated against a fresh clone rather than my working tree.
  • All 20 files scanned for credentials, real user paths, emails, and internal hosts before committing. None present; the only absolute paths are the anonymized /Users/x/proj in schema examples, and the only URLs are public vendor docs.

Note

Git history is unchanged — these files were never committed before, so nothing sensitive is being retroactively exposed from past commits.

🤖 Generated with Claude Code

hsusul and others added 3 commits August 22, 2026 16:42
`cargo fmt --all -- --check` and `cargo clippy -D warnings` both failed on
main under rustc 1.97.1. No source change caused this: `useless_concat` and
`unneeded_struct_pattern` are recent clippy lints, and CI pins nothing.

Three clippy fixes, all in test code and all semantics-preserving:
  - codex.rs: two single-argument `concat!(..)` calls collapsed to plain
    string literals (clippy::useless_concat).
  - ingest_file.rs: `IngestOutcome::Skipped { .. }` -> `IngestOutcome::Skipped`;
    it is a unit variant (clippy::unneeded_struct_pattern).

Then `cargo fmt --all`, which rewrapped 18 over-width assertion lines across
the two adapters, adapters/common.rs, and four integration tests. Mechanical
line-wrapping at the 100-column limit only.

No production code touched. Verified green: fmt, clippy (lore-core/lore-ipc
and lore-app), cargo test --locked --all-targets (346 pass / 4 ignored),
no_network_in_archive, no_egress, egress-check.sh, IPC bindings in sync,
npm lint/typecheck/test (148 pass).

Follow-up: pinning the toolchain so this cannot recur.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
CI ran `dtolnay/rust-toolchain@stable` with `cargo clippy -- -D warnings`, so
any new lint in a stable release broke the build on a commit that changed
nothing. That is not hypothetical: it is exactly how main went red under
1.97.1 (previous commit). Pinning turns a toolchain upgrade into an explicit,
reviewable change.

  - rust-toolchain.toml pins 1.97.1 with rustfmt/clippy and the minimal
    profile. rustup honors it for every cargo invocation, locally and in CI.
  - Both workflows now reference dtolnay/rust-toolchain@1.97.1 rather than
    @stable, so the runner pre-installs the same compiler rustup would fetch
    (the action does not read rust-toolchain.toml — verified against its
    README; @1.97.1 is a valid ref).
  - scripts/toolchain-pin-check.sh fails if the toml channel, the workflow
    action refs, and the active rustc are not all the same version. Wired in
    as the first step of the rust-core job, ahead of fmt/clippy. Verified it
    passes when aligned and fails when the toml and workflows disagree.

This is not the MSRV. `rust-version = "1.90"` in Cargo.toml still declares the
minimum supported compiler; this pins the one we build and lint with.

Verified: pin check, fmt, clippy (both invocations), cargo test --locked
--all-targets (346 pass / 4 ignored), both workflow files parse as YAML.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
.gitignore contained `*.md` + `/docs/`, so a fresh clone carried exactly one
markdown file: README.md. Meanwhile CLAUDE.md called AGENTS.md "the canonical
contributor guide" and the sync rules said to update the canonical doc in the
same change — none of which a contributor could act on, because none of it was
in the repository.

Now tracked (20 files): AGENTS.md, CLAUDE.md, docs/DOCS_INDEX.md, and
docs/{architecture,agents,development}. These are what someone needs in order
to build correctly and to know which doc a change must update.

Deliberately still local-only, because this repository is public:
docs/product/ (strategy, roadmap, PRD), docs/design/ (unshipped design),
docs/decisions/ (ADRs), docs/research/ (named-competitor analysis), and
RESEARCH_SUMMARY.md. The ignore rules now name these explicitly and say why,
rather than blanket-ignoring every .md. AUDIT_LOG.md, POLISH_LOG.md, and
audit-goal.txt are named too — previously they were only caught by the blanket
rule.

Because the published docs reference the internal ones, DOCS_INDEX.md is split
into "Published in this repository" and "Internal — not published", and the 18
in-prose references across AGENTS.md, CLAUDE.md, the five agent docs, and two
architecture docs are marked *(internal)*. A reference you cannot open is now
labelled as internal by design rather than reading as a broken link.

Verified: all 22 relative links in the tracked set resolve, and none points at
a gitignored path (checked with `git check-ignore`, not just local existence).
Scanned all 20 files for credentials, real user paths, emails, and internal
hosts before committing — none present; the only absolute paths are the
anonymized `/Users/x/proj` in the schema examples.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@hsusul

hsusul commented Aug 22, 2026

Copy link
Copy Markdown
Owner Author

Closing — the decision is that README.md is the only documentation in this public repository. No docs will be tracked.

@hsusul hsusul closed this Aug 22, 2026
@hsusul
hsusul deleted the docs/track-contributor-docs branch August 22, 2026 21:53
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