syntaxai/tdd.md · main · src / a31_goals.ts

a31_goals.ts 182 lines · 6047 bytes raw
// c31 — model: /goal slash-command registry. Each /goal that drove a
// PR on this site lives as a markdown file in goals/<slug>.md with
// YAML frontmatter, and this registry indexes them so /goals,
// /goals/:slug, and the sitemap have a single source of truth.
//
// FILENAME CONVENTION: every goal file is named goals/<slug>.md, NOT
// goals/<sha>.md. The merge SHA is in the frontmatter as merge_sha:
// — looked up via b32_goals_meta.findGoalByMergeSha. Rationale: the
// SHA doesn't exist when the /goal is written (chicken-and-egg), and
// /goals/<slug> is a more readable canonical permalink. SHA lookup
// still works in one grep: `grep -l "merge_sha: 968890f" goals/`.
// See /blog/2026-05/sama-v2-goal-chain-gap for the design rationale.

// Five-status taxonomy:
//   pending   — in-flight; mergeSha/prNumber null; file exists on the branch
//   shipped   — verbatim /goal text recovered from PR body/conversation; file exists
//   lossy     — paraphrased recovery (e.g. from conversation summary); file exists
//                with a "recovered from conversation summary, not verbatim" banner
//   lost      — no recoverable source; registry entry only, NO file on disk;
//                /goals/<slug> renders metadata-only at 200
//   abandoned — PR closed without merging
export type GoalStatus = "pending" | "shipped" | "lossy" | "lost" | "abandoned";

export interface GoalEntry {
  slug: string;
  title: string;
  // ISO date — when the /goal was authored.
  date: string;
  // Git branch name used during the work (matches the slug by convention).
  branch: string;
  // Null for in-flight goals; populated post-merge.
  prNumber: number | null;
  // Short SHA of the merge commit on main. Null until merged.
  mergeSha: string | null;
  status: GoalStatus;
  // Slugs of blog posts that plan, execute, or postmortem this goal.
  relatedPosts: string[];
}

export const ALL_GOALS: GoalEntry[] = [
  {
    slug: "sama-cli-shell-verifier",
    title: "Linux-native shell-based SAMA v2 verifier — second independent implementation",
    date: "2026-05-25",
    branch: "sama-cli-shell-verifier",
    prNumber: 60,
    mergeSha: "13f9114",
    status: "shipped",
    relatedPosts: [
      "sama-v2-verifier-and-the-rename",
      "sama-v2-metrics-emitter",
    ],
  },
  {
    slug: "blog-date-prefix",
    title: "Move /blog/<slug> → /blog/<yyyy-mm>/<slug> — data-driven portability test",
    date: "2026-05-25",
    branch: "blog-date-prefix",
    prNumber: 55,
    mergeSha: "72919e8",
    status: "shipped",
    relatedPosts: ["sama-v2-second-url-refactor-postmortem"],
  },
  {
    slug: "sama-discipline-prefix",
    title: "Move /sama/<discipline> → /sama/discipline/<slug> — hypothesis test",
    date: "2026-05-25",
    branch: "sama-discipline-prefix",
    prNumber: 53,
    mergeSha: "f806580",
    status: "shipped",
    relatedPosts: ["sama-v2-git-url-refactor-postmortem"],
  },
  {
    slug: "contributing-md",
    title: "Build CONTRIBUTING.md as the canonical on-ramp + drift-detection test",
    date: "2026-05-25",
    branch: "contributing-md",
    prNumber: 51,
    mergeSha: "96225f8",
    status: "shipped",
    relatedPosts: ["sama-v2-on-ramp-gap"],
  },
  {
    slug: "migrate-historical-goals",
    title: "Migrate historical /goals + lock down the authoring workflow",
    date: "2026-05-25",
    branch: "migrate-historical-goals",
    prNumber: 47,
    mergeSha: "5ce83fe",
    status: "shipped",
    relatedPosts: ["sama-v2-goal-chain-gap"],
  },
  {
    slug: "build-goals-registry",
    title: "Build /goals registry + site surface (goal #1)",
    date: "2026-05-25",
    branch: "goals-registry-build",
    prNumber: 45,
    mergeSha: "e923da8",
    status: "shipped",
    relatedPosts: ["sama-v2-goal-chain-gap"],
  },
  {
    slug: "git-url-drop-owner",
    title: "Drop redundant :owner segment from /GIT/ URLs",
    date: "2026-05-25",
    branch: "git-url-drop-owner",
    prNumber: 42,
    mergeSha: "684f257",
    status: "shipped",
    relatedPosts: [
      "sama-v2-git-url-refactor-plan",
      "sama-v2-git-url-refactor-postmortem",
    ],
  },
  {
    slug: "sitemap-xml-impl",
    title: "Add automatically-generated /sitemap.xml from existing registries",
    date: "2026-05-25",
    branch: "sitemap-xml-impl",
    prNumber: 40,
    mergeSha: "3280af8",
    status: "shipped",
    relatedPosts: ["sama-v2-sitemap-implementation-plan"],
  },
  {
    slug: "graph-depth-polyglot",
    title: "Port §5 graphDepth metric to Go + Rust",
    date: "2026-05-24",
    branch: "sama-v2-graphdepth-polyglot",
    prNumber: 34,
    mergeSha: "832b7c9",
    status: "lossy",
    relatedPosts: ["sama-v2-go-project-dive", "sama-v2-rust-project-ripgrep"],
  },
  {
    slug: "polyglot-baseline-n7",
    title: "Run polyglot §5 workingSetFit against 5 more CLI tools (n=7 baseline)",
    date: "2026-05-24",
    branch: "sama-v2-workingset-cross-repo-baseline",
    prNumber: 33,
    mergeSha: "60056b1",
    status: "lossy",
    relatedPosts: ["sama-v2-workingset-cross-repo-baseline"],
  },
  {
    slug: "working-set-polyglot",
    title: "Port §5 workingSetFit metric to Go + Rust source trees",
    date: "2026-05-24",
    branch: "sama-v2-workingset-polyglot-measured",
    prNumber: 32,
    mergeSha: "43c6f7a",
    status: "lossy",
    relatedPosts: [
      "sama-v2-go-project-dive",
      "sama-v2-rust-project-ripgrep",
      "sama-v2-workingset-cross-repo-baseline",
    ],
  },
  {
    slug: "v21-dialects-spec",
    title: "Draft three v2.1 dialects into §6 + profile-parser tolerance",
    date: "2026-05-24",
    branch: "sama-v2-1-dialects-drafted",
    prNumber: 31,
    mergeSha: "f244dbb",
    status: "lossy",
    relatedPosts: ["sama-v2-rust-project-ripgrep", "sama-v2-go-project-dive"],
  },
  {
    slug: "sama-rewrite-v2-first",
    title: "Rewrite /sama using SV \"latest is default, legacy preserved\" pattern",
    date: "2026-05-24",
    branch: "sama-v2-first-images",
    prNumber: 36,
    mergeSha: "fd50ede",
    status: "lossy",
    relatedPosts: [],
  },
];