Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .claude/commands/iwc-survey-pattern.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ Write or refine exactly one pattern page under `content/patterns/` from a survey
2. **`CLAUDE.md`** — local authoring rules.
3. **`docs/PATTERNS.md`** — operation-anchored naming, corpus-first rule, legacy-tool posture.
4. **`docs/ARCHITECTURE.md`** §3, §5, §6 — note types, frontmatter, validation.
5. **`meta_schema.yml`** + **`meta_tags.yml`** — frontmatter contract and tags.
5. **`packages/note-schema/src/note-schema.ts`** + **`meta_tags.yml`** — frontmatter contract and tags.
6. **`common_paths.yml.sample`** — citation prefix vocabulary; use `$IWC_FORMAT2/path:line` citations.
7. **The survey at `$1`** — especially the candidate boundary, decisions, and open-question resolution relevant to `$2`.

Expand Down Expand Up @@ -55,7 +55,7 @@ Drop sections that do not earn their space. A thin “None surfaced” legacy se

## Frontmatter guidance

- Required fields must conform to `meta_schema.yml`; do not add ad-hoc fields.
- Required fields must conform to the `@galaxy-foundry/note-schema` contract; do not add ad-hoc fields.
- Set `pattern_kind: operation` for concrete operation pages, `pattern_kind: recipe` for multi-step lifecycle pages, and `pattern_kind: moc` for map-of-content pages that route readers to operations and recipes.
- `summary` is a compressed “what to do and when” line, not a mini abstract.
- `related_notes` should name primary source notes only, usually the survey. Put secondary context notes in body or `See also` unless they are essential source material.
Expand Down
2 changes: 1 addition & 1 deletion .claude/commands/iwc-survey.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ Produce or refresh `content/research/iwc-$1-survey.md`. The survey **proposes ca
2. **`CLAUDE.md`** — authoring rules.
3. **`docs/PATTERNS.md`** — pattern-authorship policy. **Operation-anchored naming** is mandatory in candidate-pattern proposals; do not surface tool-anchored names. Corpus-first applies — no speculative candidates.
4. **`docs/ARCHITECTURE.md`** §3 (note types), §5 (frontmatter), §6 (validation).
5. **`meta_schema.yml`** + **`meta_tags.yml`**.
5. **`packages/note-schema/src/note-schema.ts`** + **`meta_tags.yml`**.
6. **`common_paths.yml.sample`** — `$IWC_FORMAT2` is the cleaned `gxformat2` corpus root for grep work and full-workflow reads; `$IWC_SKELETONS` mirrors that tree with non-structural fields stripped (tool_ids + topology + control flow only) — cheap structural scans for step-pair / step-sequence patterns; `$IWC` is the upstream `.ga` source for permalinks. Write citations as `` `$IWC_FORMAT2/path:line` `` (or `` `$IWC_SKELETONS/path:line` `` when the structural view is what's evidenced).
7. **`content/research/iwc-shortcuts-anti-patterns.md`** — already-pinned "don't endorse" calls. Do not re-surface anything covered here as a recommendation.
8. **Existing surveys** under `content/research/iwc-*-survey.md` — for shape and tone, and to detect topic overlap.
Expand Down
2 changes: 1 addition & 1 deletion .claude/commands/review-mold.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ Run it once and trust it. Do **not** re-derive these checks by hand — spend to
2. **`CLAUDE.md`** / **`AGENTS.md`** — authoring rules.
3. **`docs/MOLD_SPEC.md`** — Mold source layout and the eval/usage/refinement contract; reference-kind taxonomy; `load`/`mode`/`used_at` semantics.
4. **`docs/COMPILATION_PIPELINE.md`** — what Cast does with each reference kind; `mode: verbatim` vs LLM-condensed.
5. **`meta_schema.yml`** — only the Mold-specific shapes (`references[]` schema). Skim, don't memorize.
5. **`packages/note-schema/src/note-schema.ts`** — only the Mold-specific shapes (`references[]` schema). Skim, don't memorize.
6. **`common_paths.yml.sample`** — citation-prefix vocabulary for resolving inline `$NAME/...` corpus references.
7. **The Mold itself** — `content/molds/$1/`:
- `index.md` (frontmatter + body)
Expand Down
4 changes: 2 additions & 2 deletions .claude/commands/review-pattern.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ Review the note at `$1` and return a structured report. Do **not** edit files
1. **`content/glossary.md`** — pinned vocabulary (Mold, Pipeline, Pattern, Cast, axis, …). Misreading these terms breaks the review.
2. **`CLAUDE.md`** — authoring rules (`additionalProperties: false`, registered tags, wiki-link conventions, "don't weaken the schema").
3. **`docs/ARCHITECTURE.md`** §3 (note types), §5 (frontmatter contract), §6 (validation pipeline). Skim the rest only if needed.
4. **`meta_schema.yml`** + **`meta_tags.yml`** — frontmatter and tag enums.
4. **`packages/note-schema/src/note-schema.ts`** + **`meta_tags.yml`** — frontmatter and tag enums.
5. **`common_paths.yml.sample`** — the citation prefix vocabulary. Logical names (`$IWC`, `$IWC_FORMAT2`, `$GALAXY`, `$TOOLS_IUC`, `$PLANEMO`, `$GXFORMAT2`) map to filesystem paths and (when set) GitHub repos. Resolve every `$NAME/...` citation in the note via this file before checking it.
6. **The note's `related_notes` and survey/research companions** — pinned decisions live in `## Decisions` sections (e.g. `iwc-tabular-operations-survey.md` §7). Treat those as binding unless the review surfaces a reason they're wrong; if so, flag for both the note *and* the source decision record.

Expand All @@ -32,7 +32,7 @@ For research notes:

1. **Correctness vs tool source** — anything the wrapper contradicts is a fix-before-merge.
2. **Correctness vs corpus** — citations resolve, ranges are tight, paraphrases are faithful.
3. **Schema / tag conformance** — frontmatter validates against `meta_schema.yml`, all tags appear in `meta_tags.yml`. Note: `additionalProperties: false`, so unknown frontmatter fields are blockers.
3. **Schema / tag conformance** — frontmatter validates against the `@galaxy-foundry/note-schema` contract, all tags appear in `meta_tags.yml`. Note: per-type members are `.strict()`, so unknown frontmatter fields are blockers.
4. **Survey decision conformance** — `## Decisions` sections in companion research notes are binding. Drift between page and decision record is a flag on both.
5. **Form quality for casting** — pattern pages get LLM-condensed into cast skills; reference content should be "do this," not "what we considered." Pitfalls concrete; wiki-links meaningful.

Expand Down
24 changes: 22 additions & 2 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,29 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: withastro/action@v3

- uses: actions/setup-node@v4
with:
path: site
node-version: 20

- name: Enable corepack
run: corepack enable

# site is a pnpm workspace member; its @galaxy-foundry/* deps resolve to
# sibling packages that must be built to dist before Astro imports them.
- name: Install dependencies
run: pnpm install --frozen-lockfile

- name: Build packages
run: npm run packages-build

- name: Build site
run: npm run site:build

- name: Upload Pages artifact
uses: actions/upload-pages-artifact@v3
with:
path: site/dist
deploy:
needs: build
runs-on: ubuntu-latest
Expand Down
3 changes: 0 additions & 3 deletions .github/workflows/packages.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,9 +36,6 @@ jobs:
- name: Validate content
run: npm run validate

- name: Install site dependencies
run: npm --prefix site install --no-audit --no-fund

- name: Typecheck root and site
run: npm run typecheck

Expand Down
2 changes: 1 addition & 1 deletion AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@

## Authoring rules

- **Frontmatter is contract.** `meta_schema.yml` is JSON Schema Draft 07 with `additionalProperties: false`. Unknown fields are rejected. Add a property declaration in the schema before adding a frontmatter field anywhere.
- **Frontmatter is contract.** The single source of truth is the zod schema in `@galaxy-foundry/note-schema` (`buildNoteSchema`, `packages/note-schema/src/note-schema.ts`), shared by the validator and the Astro site — there is no separate JSON-Schema mirror. Per-type members are `.strict()`, so unknown fields are rejected. Add a field to the relevant member before using it in frontmatter anywhere.
- **Tags must be registered.** Every tag a note uses lives in `meta_tags.yml`. Vocabulary changes touch one file.
- **Wiki-link fields use `[[Target]]`.** Single-value fields (`parent_pattern`) and array fields (`related_notes`, `related_patterns`, `related_molds`, `patterns`, `cli_commands`, `prompts`).
- **Polished IWC references should survive corpus churn.** Pattern pages, Mold pages, and other polished content should cite abstract IWC workflow IDs without generated extensions or fixture roots, e.g. `transcriptomics/rnaseq-pe/rnaseq-pe`, plus step labels or step IDs when needed. Do not cite generated `.ga`/`.gxwf.yml` paths or line numbers in polished pages; reserve those for surveys, ad-hoc research notes, and local debugging evidence.
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ Two flows feed the Foundry:

Casting produces skill artifacts: `npm run cast -- --mold=<slug> --target=<target>`.

Frontmatter is contract-enforced by `meta_schema.yml`; every note carries a registered tag from `meta_tags.yml`. Validate before commit.
Frontmatter is contract-enforced by the shared zod schema in `@galaxy-foundry/note-schema` (used by both the validator and the site); every note carries a registered tag from `meta_tags.yml`. Validate before commit.

## Tooling

Expand Down
2 changes: 1 addition & 1 deletion content/glossary.md
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ Alphabetical.

**Scenario note** — Mold- or Pipeline-owned content (`scenarios.md`): the **concrete test cases** the eval oracle is applied against (a Mold input, or a whole-journey input for a Pipeline). Each case binds a fixture/input and states its expected values or assertions as free text (e.g. "CalliNGS-NF → 11 processes from root `modules.nf`", "`sort([3,1,2]) == [1,2,3]`"). All fixture-specific concreteness lives here, keeping the **Evaluation plan** (`eval.md`) a pure abstract oracle. A **run** pairs a scenario's output with the eval oracle's property checks (driven by `/test-drive`). Foundry-maintainer infrastructure; never packaged into cast artifacts. Distinct from **Evaluation plan** (abstract checker), **Usage note** (illustration), and **Refinement note** (design questions).

**Schema (Mold IO)** — a JSON Schema file declaring the input or output shape of a Mold (e.g., the per-source summary schemas, the Galaxy tool summary schema). Lives in `schemas/` (a non-content directory; not a vault note). Referenced by Molds via typed-path frontmatter fields; copied verbatim into cast bundles by casting. Distinct from `meta_schema.yml`, which is the *frontmatter* contract for content notes.
**Schema (Mold IO)** — a JSON Schema file declaring the input or output shape of a Mold (e.g., the per-source summary schemas, the Galaxy tool summary schema). Lives in `schemas/` (a non-content directory; not a vault note). Referenced by Molds via typed-path frontmatter fields; copied verbatim into cast bundles by casting. Distinct from the *frontmatter* contract for content notes, which is the shared zod schema in `@galaxy-foundry/note-schema`.

**Subway map** — informal name for the visual rendering of a Pipeline as a vertical line of stops: Mold-shaped phases are linked stations, `[loop]` decorates per-step stations, `[branch]` stops are decision diamonds with their inner branches/chains expanded, future `[gate]` stops would render as checkpoint markers. Off-ramps per stop point to the patterns / CLI manpages / schemas the Mold references — the reference-surface drill-downs from a journey-surface point. Rendered by `[...slug].astro` via `PipelineBody.astro` + `PhaseGraph.astro`; the per-pipeline harness off-ramp lives at `pipelines/[slug]/harness.astro`.

Expand Down
Loading
Loading