Skip to content

fix(writings): repair software-virtues-revisited frontmatter#194

Merged
klappy merged 1 commit into
mainfrom
fix/software-virtues-revisited-frontmatter
May 10, 2026
Merged

fix(writings): repair software-virtues-revisited frontmatter#194
klappy merged 1 commit into
mainfrom
fix/software-virtues-revisited-frontmatter

Conversation

@klappy
Copy link
Copy Markdown
Owner

@klappy klappy commented May 10, 2026

What

Fixes the May 10 essay writings/software-virtues-revisited.md so it actually appears on the homepage.

Why it was invisible

The doc-listing Supabase function (which feeds the homepage) silently filters out entries whose frontmatter doesn't conform. This essay had:

Field Was Now Note
exposure published public published is not a valid value. Canon allows nav | public | draft | hidden | internal.
voice klappy first_person Not in voice enum either.
type (missing) essay Renderer cannot select template without this.
slug (missing) software-virtues-revisited Renderer cannot generate page URL without this.
public (missing) true Boolean, unquoted.
hook / description / subtitle / author / og+twitter (missing) backfilled Pulled from author's own opening blockquote — no new content invented.

Both crash patterns above are documented in klappy://canon/constraints/frontmatter-validation-before-merge § Known Crash Patterns. The canon constraint mandates automated schema validation pre-merge; the implementation gap (canon-quality.yml only audits klappy:// reference integrity, not frontmatter schemas) will be closed in a follow-up oddkit PR adding a frontmatter-schema rule pack to oddkit_audit.

Verification

  • Frontmatter parsed with PyYAML, all eight universal fields present, all enum values in their canon-allowed sets, no public:false + exposure:public contradictions, no quoted-boolean issues.
  • Body untouched (160 lines preserved verbatim).

Canon

  • klappy://canon/constraints/frontmatter-validation-before-merge
  • klappy://canon/meta/frontmatter-schema

Note

Low Risk
Low risk: changes are limited to frontmatter metadata (enums/required fields) to make the essay render/list correctly; no application logic changes.

Overview
Fixes writings/software-virtues-revisited.md frontmatter to conform to the site’s expected schema so the essay is eligible for listing/rendering.

Adds missing required metadata (type, slug, public, plus social/discovery fields) and normalizes invalid values (e.g., exposure: public, voice: first_person) while leaving the body content unchanged.

Reviewed by Cursor Bugbot for commit f3f2a40. Bugbot is set up for automated code reviews on this repo. Configure here.

- exposure: published → public  (only valid values per canon schema:
  nav | public | draft | hidden | internal; the renderer's homepage
  filter silently drops anything else, which is why this essay was
  invisible despite being on main since 2026-05-10)
- voice: klappy → first_person  (not in voice enum either)
- backfill discovery block: type, slug, public, hook, description,
  author, subtitle, og/twitter — without these the homepage card
  rendered empty per the doc-listing API response

Body untouched. Pulled hook/description from author's own opening
blockquote, not invented.

Canon: klappy://canon/constraints/frontmatter-validation-before-merge
       klappy://canon/meta/frontmatter-schema
@klappy klappy merged commit 4b4b302 into main May 10, 2026
1 check passed
@github-actions
Copy link
Copy Markdown

Canon Quality — oddkit_audit

No dead klappy:// references or legacy link patterns found in writings/. 41 files scanned.

Spec: klappy://docs/oddkit/specs/oddkit-audit · Workflow: .github/workflows/canon-quality.yml · Run: #117

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