Skip to content

Commit 9a4bcd0

Browse files
docs: remove stale terminology and reduce duplication
1 parent a1b207d commit 9a4bcd0

8 files changed

Lines changed: 49 additions & 63 deletions

File tree

docs/CONTRIBUTING.md

Lines changed: 4 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ Use the canonical helper scripts from `package.json` or call the orchestrator di
3030
| Inspect the pipeline | `node --run pipeline -- list` / `describe` / `logs` | Inspect the registered stages, pipelines, and recent run records. |
3131
| Re-run processing+publish | `node scripts/orchestrator/index.ts run full-refresh-parallel --only=parallel-processing,aggregate-catalogue` | Re-run worker analysis and publication without re-running markdown parsing manually. |
3232

33-
The `parallel-processing` stage is the expensive part of the run: it clones repositories, extracts metadata and screenshots, and performs the deeper checks that produce the stage-5 payload in memory. The follow-up `aggregate-catalogue` stage turns that payload into `modules.json`, `modules.min.json`, and `stats.json`.
33+
The `parallel-processing` stage is the expensive part of the run: it clones repositories, extracts metadata and screenshots, and performs the deeper checks that produce the analysis payload in memory. The follow-up `aggregate-catalogue` stage turns that payload into `modules.json`, `modules.min.json`, and `stats.json`.
3434

3535
### Orchestrator CLI for partial runs
3636

@@ -52,17 +52,7 @@ Check the [orchestrator CLI reference](pipeline/orchestrator-cli-reference.md) f
5252

5353
### Stage details
5454

55-
#### Stage 1+2 – `collect-metadata/index.js`
56-
57-
Reads the official wiki list of third-party modules and fetches metadata (stars, topics, default branch, etc.) from the hosting service (GitHub/GitLab). The stage returns an in-memory enriched payload for downstream stages and updates the API cache on disk.
58-
59-
#### Stage 3+4+5 – `parallel-processing.js`
60-
61-
Combines repository cloning, `package.json` enrichment, screenshot extraction, and deep analysis inside the worker pool. The stage emits the analysis payload in memory.
62-
63-
#### Stage 6 – `aggregate-catalogue.js`
64-
65-
Consumes the stage-5 payload and writes the published catalogue outputs (`modules.json`, `modules.min.json`, `stats.json`).
55+
For canonical stage definitions, responsibilities, and data flow, use [docs/architecture.md](architecture.md) as the single source of truth. This avoids drift between contributor instructions and pipeline design docs.
6656

6757
#### `validate_release_artifacts.ts`
6858

@@ -80,7 +70,7 @@ For regression testing, prefer the curated fixtures (`node --run fixtures:genera
8070

8171
## Release validation
8272

83-
As of September 2025, schema validation is part of the release gate. After you regenerate the website data, run:
73+
Schema validation is part of the release gate. After you regenerate the website data, run:
8474

8575
```bash
8676
node --run release:validate
@@ -122,17 +112,6 @@ npm run schemas:check
122112

123113
The bundled files live in `dist/schemas/`. They ship with the repository so `node --run release:validate` can run without extra setup.
124114

125-
## Prerequisites & installation
126-
127-
1. Install [Node.js](https://nodejs.org).
128-
2. Clone the repository:
129-
```bash
130-
git clone https://github.com/MagicMirrorOrg/MagicMirror-3rd-Party-Modules
131-
cd MagicMirror-3rd-Party-Modules
132-
npm install
133-
```
134-
3. Optional: Launch the task menu with `npm start` or run `node --run all` to execute every stage sequentially (note: takes >10 minutes and >2 GB disk when cloning the full catalogue).
135-
136115
## Running the container locally
137116

138117
To preview the published website bundle without running the full pipeline, use the prebuilt container image:
@@ -219,10 +198,9 @@ Golden artifacts are reference outputs stored in `fixtures/golden/` that serve a
219198

220199
## Helpful references
221200

222-
- [`docs/architecture.md`](architecture.md) – current vs. target pipeline topology.
201+
- [`docs/architecture.md`](architecture.md) – current pipeline topology.
223202
- [`docs/pipeline/orchestrator-cli-reference.md`](pipeline/orchestrator-cli-reference.md) – command reference for partial runs, diagnostics, and logs.
224203
- [`fixtures/README.md`](../fixtures/README.md) – curated dataset and validation troubleshooting.
225-
- [`docs/pipeline/orchestrator-cli-reference.md`](pipeline/orchestrator-cli-reference.md) – current CLI and schema validation flow.
226204

227205
### Troubleshooting
228206

docs/README.md

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# Documentation Index
2+
3+
Use this index to find the right document quickly.
4+
5+
## Core docs
6+
7+
- [CONTRIBUTING.md](CONTRIBUTING.md) - contributor setup, pipeline commands, testing, and troubleshooting.
8+
- [architecture.md](architecture.md) - canonical pipeline topology, stage flow, and distribution touchpoints.
9+
- [deterministic-outputs.md](deterministic-outputs.md) - deterministic output guarantees and implementation notes.
10+
11+
## Pipeline-specific docs
12+
13+
- [pipeline/orchestrator-cli-reference.md](pipeline/orchestrator-cli-reference.md) - orchestrator CLI behavior, options, and run metadata.
14+
- [pipeline/check-modules-reference.md](pipeline/check-modules-reference.md) - check-modules rule inventory and fixture coverage.
15+
16+
## Related areas outside docs/
17+
18+
- [../guides/README.md](../guides/README.md) - guidance aimed at module authors (linting, README quality).
19+
- [../fixtures/README.md](../fixtures/README.md) - curated fixture dataset and regeneration workflow.
20+
- [../pipeline/workers/README.md](../pipeline/workers/README.md) - worker pool internals and runtime behavior.

docs/architecture.md

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,18 @@
22

33
Visibility into the automation that builds and publishes the third-party module catalogue helps contributors reason about changes and spot failure points early. This document summarizes the current canonical pipeline and the parts of the broader architecture that are still future-facing.
44

5-
## Current State (March 2026)
5+
## Current State (April 2026)
66

77
The supported production pipeline is orchestrated via `node scripts/orchestrator/index.ts run full-refresh-parallel` (also exposed as `node --run all`). The orchestrator now drives four registered stages across three operational phases: metadata collection, parallel module processing, and publication.
88

99
### Stage Overview
1010

11-
| Order | Stage ID | Key Outputs |
12-
| ----- | -------------------------- | ------------------------------------------------------------------------- |
13-
| 1 | `collect-metadata` | in-memory metadata payload, `gitHubData.json` |
14-
| 2 | `parallel-processing` | in-memory stage-5 payload, `modules/`, `modules_temp/`, `website/images/` |
15-
| 3 | `aggregate-catalogue` | `modules.json`, `modules.min.json`, `stats.json` |
16-
| 4 | `generate-result-markdown` | `result.md` |
11+
| Order | Stage ID | Key Outputs |
12+
| ----- | -------------------------- | -------------------------------------------------------------------------------------------------- |
13+
| 1 | `collect-metadata` | in-memory metadata payload, `gitHubData.json` |
14+
| 2 | `parallel-processing` | in-memory analysis payload, `modules/`, `modules_temp/`, `website/images/`, `skipped_modules.json` |
15+
| 3 | `aggregate-catalogue` | `modules.json`, `modules.min.json`, `stats.json` |
16+
| 4 | `generate-result-markdown` | `result.md` |
1717

1818
### Current Workflow Diagram
1919

@@ -31,13 +31,13 @@ flowchart TB
3131
metadata --> parallel{{Parallel processing}}
3232
parallel --> clones[("modules/<br>modules_temp/")]
3333
parallel --> images[("website/images/")]
34-
parallel --> stage5["stage-5 payload (in-memory)"]
34+
parallel --> analysisPayload["analysis payload (in-memory)"]
3535
end
3636
3737
subgraph Phase 3: Catalogue Aggregation
38-
stage5 --> aggregate{{Aggregate catalogue}}
38+
analysisPayload --> aggregate{{Aggregate catalogue}}
3939
aggregate --> outputs[("modules.json<br>modules.min.json<br>stats.json")]
40-
stage5 --> result{{Generate result markdown}}
40+
analysisPayload --> result{{Generate result markdown}}
4141
outputs --> result
4242
result --> resultMd[("result.md")]
4343
end
@@ -51,7 +51,7 @@ flowchart TB
5151

5252
- **Orchestrator CLI**: Declarative stage graph with `--only/--skip` support, retries, and structured logging
5353
- **Worker Pool Stage**: `parallel-processing` encapsulates clone, enrich, image, and analysis work behind a single supported stage
54-
- **Aggregation Stage**: `aggregate-catalogue` builds published JSON artifacts from the in-memory stage-5 payload
54+
- **Aggregation Stage**: `aggregate-catalogue` builds published JSON artifacts from the in-memory analysis payload
5555
- **Schema Validation**: JSON schemas enforce contracts at the published boundaries (`modules.json`, `modules.min.json`, `stats.json`)
5656
- **Shared Utilities**: HTTP, Git, filesystem, and rate limiting in `scripts/shared/`
5757

docs/pipeline/check-modules-reference.md

Lines changed: 2 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,9 @@
11
# Check Modules Reference
22

3-
_Last updated: March 19, 2026_
3+
_Last updated: April 16, 2026_
44

55
This page consolidates the material that previously lived in early planning documents. It should stay up to date as we evolve the check-modules pipeline and the curated fixture set.
66

7-
## Status snapshot
8-
9-
- ✅ TypeScript implementation is the default Stage 5 runner.
10-
- ✅ CLI progress indicator renders live module throughput and emits a per-run Markdown summary under `.pipeline-runs/check-modules/`.
11-
- ✅ Stage 5 flags modules that import any non built-in dependency without declaring it in their own `package.json` (Node built-ins and the allowlist `express`, `node_helper`, `logger` are ignored).
12-
- ✅ README install and update sections now require a copy-pasteable fenced command block so users can run the instructions without manual reformatting.
13-
147
## Check group configuration
158

169
The Stage 5 runner reads `scripts/check-modules/check-groups.config.json` to decide which groups execute. All toggles ship enabled; set individual entries to `false` to skip that category. Personal overrides belong in `check-groups.config.local.json` (same directory) so local tweaks stay out of version control.
@@ -25,12 +18,6 @@ The Stage 5 runner reads `scripts/check-modules/check-groups.config.json` to de
2518

2619
> The runner logs whenever overrides are applied so CI output records which groups were disabled.
2720
28-
## CLI progress & run summaries
29-
30-
- When the stage runs interactively (TTY), it renders a single-line progress gauge on `stderr`. Disable it with `CHECK_MODULES_DISABLE_PROGRESS=1` or `CHECK_MODULES_PROGRESS=off` if you prefer verbose line-by-line logging.
31-
- Every execution writes a Markdown + JSON summary to `.pipeline-runs/check-modules/<run-id>/`. The Markdown combines toggle state, aggregate stats, and the top modules with issues; the JSON mirrors the key metrics for tooling.
32-
- Artifact links inside the summary resolve relative to the run directory, making it easy to inspect `website/result.md`, `modules.json`, and `stats.json` produced by the run.
33-
3421
## Rule inventory
3522

3623
These are the rule IDs currently implemented by the TypeScript checker. Keep this table synchronized with the rule registry schema when adding or modifying checks.
@@ -157,4 +144,4 @@ The curated fixture repositories live in `fixtures/modules/`. Keep this table in
157144

158145
## Housekeeping
159146

160-
- Update this page whenever you add or modify Stage 5 rules or fixtures.
147+
- Update this page whenever you add or modify check-modules rules or fixtures.

docs/pipeline/orchestrator-cli-reference.md

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Pipeline Orchestrator CLI — Reference
22

3-
_Last updated: 2025-09-30_
3+
_Last updated: 2026-04-16_
44

55
A lightweight Node.js command-line interface reads the declarative stage graph, executes the pipeline end-to-end, and provides structured feedback to contributors. This document now serves as the reference for the shipped implementation.
66

@@ -98,5 +98,4 @@ The original exploration surfaced a few ideas that remain on the backlog:
9898

9999
## Integration with Existing Scripts
100100

101-
- Stage runner resolves script paths from the graph and executes them raw (no refactor needed initially).
102-
- Shared helper for environment preparation (e.g. ensuring `modules_temp` rotation) remains a follow-up task and can live under `scripts/lib/pipeline/` when extracted.
101+
- All supported stages run in-process via the stage runner abstraction (`in-process-stage-runner.ts`). The stage graph declares script paths which the runner resolves and executes within the same Node process.

fixtures/modules/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,6 @@ Each fixture directory contains:
3636
4. Ensure every rule listed in the registry has at least one fixture (baseline or synthetic) that will trigger it. Record a short explanation in `FIXTURE.md` so future updates know the expected findings.
3737
5. When adding a new fixture, update `docs/pipeline/check-modules-reference.md` with the coverage matrix and, if needed, regenerate the curated dataset under `fixtures/data/`.
3838

39-
## Next steps
39+
## Maintenance
4040

41-
- Ensure contributors rerun `node scripts/fixtures/updateBaselineShas.ts` whenever we refresh the curated dataset so recorded commits stay accurate.
41+
- Rerun `node scripts/fixtures/updateBaselineShas.ts` whenever you refresh the curated dataset so recorded commits stay accurate.

module-submissions/README.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ This directory contains the infrastructure for the new PR-based module submissio
66

77
Replace the wiki-based module list with a modern, quality-controlled submission process using GitHub Pull Requests.
88

9+
> **Status:** This system is under development. The validation infrastructure and GitHub Actions workflows exist, but the submission flow has not yet been used in production. The documentation below describes the intended design.
10+
911
## 📁 Directory Structure
1012

1113
```text
@@ -108,13 +110,13 @@ gh api orgs/MagicMirrorOrg/teams/trusted-contributors/memberships/USERNAME -X DE
108110

109111
All submissions must conform to this schema:
110112

111-
```json
113+
```jsonc
112114
{
113115
"url": "https://github.com/username/MMM-ModuleName",
114116
"name": "MMM-ModuleName",
115117
"description": "Brief description of what the module does",
116118
"category": "Category name",
117-
"submissionType": "New Module" | "Update Existing Module",
119+
"submissionType": "New Module", // or "Update Existing Module"
118120
"additionalInfo": "Optional additional context",
119121
"submittedBy": "github-username",
120122
"submittedAt": "2025-10-19T12:00:00Z",

pipeline/workers/README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ const results = await pool.processModules(modules, moduleConfig);
5050

5151
The worker pool is integrated into the pipeline via:
5252

53-
- **Script**: `scripts/parallel-processing.js`
53+
- **Script**: `scripts/parallel-processing.ts`
5454
- **Pipeline**: `full-refresh-parallel` (in `stage-graph.json`)
5555

5656
Run with:
@@ -109,15 +109,15 @@ See [../docs/architecture.md](../../docs/architecture.md) for the canonical pipe
109109
│ Input: ModuleInput (from in-memory metadata payload) │
110110
│ │
111111
│ ┌──────────────────────────────────────────────────────┐ │
112-
│ │ Stage 3: Clone Repository │ │
112+
│ │ Phase 1: Clone Repository │ │
113113
│ │ - Check if repo is up-to-date (skip if cached) │ │
114114
│ │ - Clone or update repository │ │
115115
│ │ - Move from temp to final location │ │
116116
│ └──────────────────────────────────────────────────────┘ │
117117
│ │ │
118118
│ ▼ │
119119
│ ┌──────────────────────────────────────────────────────┐ │
120-
│ │ Stage 4: Enrich Metadata │ │
120+
│ │ Phase 2: Enrich Metadata │ │
121121
│ │ - Load package.json │ │
122122
│ │ - Derive tags from keywords │ │
123123
│ │ - Find and resize screenshot │ │
@@ -126,7 +126,7 @@ See [../docs/architecture.md](../../docs/architecture.md) for the canonical pipe
126126
│ │ │
127127
│ ▼ │
128128
│ ┌──────────────────────────────────────────────────────┐ │
129-
│ │ Stage 5: Analyze │ │
129+
│ │ Phase 3: Analyze │ │
130130
│ │ - Fast checks + deep heuristics │ │
131131
│ │ - Optional ESLint / npm-check-updates integrations │ │
132132
│ │ - Dependency and README rule evaluation │ │

0 commit comments

Comments
 (0)