One discipline · three doors contextkeeping.com machinereadyknowledge.com answerecon.com

MRK-1.0 · the specimen

The standard, demonstrated.

Below is one complete machine-ready article — not a template, not a mock. It records a true incident from running this estate's websites, it conforms to every MRK-1.0 clause, and its front matter validates against the served schema. You don't have to take any of that on faith:

Validate it yourself

$ curl -sO https://machinereadyknowledge.com/specimen.yaml
$ check-jsonschema \
    --schemafile https://machinereadyknowledge.com/mrk-1.0.schema.json \
    specimen.yaml
ok -- validation done

The whole article is also served raw at /specimen.md — the machine-consumable artifact itself, front matter and body, exactly as a retrieval pipeline would ingest it.

The machine layer: front matter under contract.

Everything in the rail to the right is the article's actual front matter — the copy served at /specimen.yaml, shown here verbatim (the build refuses to publish this page if the two drift). Four things to notice, one per clause of the standard:

  • Explicit applicabilityapplies_to names the platform and scope. A machine can decide whether this article applies before quoting it.
  • Freshness signalsverified: 2026-09-08 is a date someone stood behind, not a CMS timestamp.
  • Stable identifiersck-ops-1 is immutable, and every section is addressable: ck-ops-1#resolution resolves on this very page.
  • Self-contained sections — each self_contained: true is a human attestation made at the curation gate, which is why the schema stores it rather than infers it.

The article, as a human reads it.

Five sections, each written to stand alone — because the machine that quotes one of them will not show its reader the other four.

Environment

Apache 2.4 on shared hosting, serving a static site. Clean extensionless URLs (/page serving page.html) come from mod_rewrite rules in the docroot .htaccess. mod_dir is active with its default DirectorySlash On; directory listings are disabled.

Issue

On an Apache site that serves extensionless clean URLs, creating a subdirectory with the same name as a page (page/ next to page.html) makes the bare URL /page stop serving. It returns a 301 redirect to /page/, which returns 403. URLs deeper inside the new directory keep working, so the breakage is easy to miss. A plain fetch of the bare URL can look like a stale page, because the response body is the redirect stub — check the HTTP status line before diagnosing content.

Cause

mod_dir's trailing-slash redirect (DirectorySlash On, the Apache default) fires for any request URL that maps to an existing directory, and it wins before the per-directory mod_rewrite rule that would serve page.html. The slash-redirected URL then returns 403 because directory listings are disabled and the directory has no index document.

Resolution

In the docroot .htaccess of an Apache site whose extensionless page is shadowed by a same-named directory:

  • Set DirectorySlash Off so the trailing-slash redirect no longer preempts the rewrite to page.html.
  • Keep Options -Indexes set explicitly. With DirectorySlash off, a bare directory URL is otherwise eligible for a listing wherever autoindex is enabled.
  • Add a one-hop 301 from the slashed form back to the canonical extensionless URL. The rule from the incident this article records (the page /field-notes on contextkeeping.com, shadowed by a new field-notes/ directory): RewriteRule ^field-notes/$ https://contextkeeping.com/field-notes [R=301,L]
  • Add the verification probes below to the deployment checklist, so the next same-named directory cannot ship the regression silently.

Verify

Run three probes against the live Apache site after uploading the .htaccess that resolves a directory-shadowed extensionless page. These are the probes from the recorded incident, and they pass against the live site today — run them:

$ curl -sI https://contextkeeping.com/field-notes | head -1
HTTP/1.1 200 OK

$ curl -sI https://contextkeeping.com/field-notes/ | grep -i "^location"
Location: https://contextkeeping.com/field-notes

$ curl -sI https://contextkeeping.com/field-notes/system-of-record | head -1
HTTP/1.1 200 OK

All three passing means the page serves, the slashed form canonicalizes in one hop, and the directory's real children are unaffected.

Where this article came from

The incident is real: it happened on 2026-09-08 while shipping the Contextkeeping build log — the directory for the new posts shadowed the page that listed them. The build-log series shows the same discipline this standard asks for, running as a system: a git-backed record, a validation gate, and a gap loop. Start at the reading room.

Read the four clauses The raw artifact — specimen.md

The specimen is a living record: when its content is re-verified, the verified: date moves, and this page moves with it — the freshness clause, practiced.