@zigrivers/scaffold 3.33.3 → 3.33.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/content/guides/mmr/index.html +17 -1
- package/content/guides/mmr/index.md +16 -0
- package/content/knowledge/VERSION +1 -1
- package/content/knowledge/backend/backend-fintech-observability.md +17 -3
- package/content/knowledge/backend/backend-fintech-order-lifecycle.md +17 -3
- package/content/knowledge/backend/backend-fintech-risk-management.md +17 -3
- package/content/knowledge/backend/backend-fintech-testing.md +14 -2
- package/content/knowledge/backend/backend-observability.md +16 -2
- package/content/knowledge/backend/backend-project-structure.md +14 -3
- package/content/knowledge/backend/backend-requirements.md +16 -3
- package/content/knowledge/backend/backend-security.md +18 -3
- package/content/knowledge/backend/backend-testing.md +15 -2
- package/content/knowledge/backend/backend-worker-patterns.md +17 -3
- package/content/skills/mmr/SKILL.md +9 -0
- package/package.json +1 -1
- package/skills/mmr/SKILL.md +9 -0
|
@@ -1570,10 +1570,26 @@ mmr review --pr 123 --channels grok claude --sync --format json
|
|
|
1570
1570
|
|
|
1571
1571
|
|
|
1572
1572
|
|
|
1573
|
-
|
|
1573
|
+
|
|
1574
|
+
|
|
1575
|
+
|
|
1576
|
+
|
|
1577
|
+
<table><thead><tr><th>Command</th><th>Purpose</th></tr></thead><tbody><tr><td><code>mmr reconcile <job-id> --channel <name> --input <data></code></td><td>Inject an external channel's findings (e.g. the Superpowers agent) into an existing job and re-run the results pipeline. Input is a file, <code>-</code> for stdin, or inline JSON. <span class="fp" data-path="packages/mmr/src/commands/reconcile.ts:17">packages/mmr/src/commands/reconcile.ts:17</span></td></tr><tr><td><code>mmr status <job-id></code></td><td>Per-channel status and elapsed time. Exit 0 = all complete, 1 = running, 2 = a channel failed, 5 = not found.</td></tr><tr><td><code>mmr results <job-id> [--raw]</code></td><td>Re-run parse → reconcile → format on a completed job. Exit code reflects the verdict.</td></tr><tr><td><code>mmr jobs <list|prune></code></td><td>List jobs, or prune old ones per <code>job_retention_days</code>.</td></tr><tr><td><code>mmr sessions <start|list|show|end> <id></code></td><td>Manage multi-round review sessions (stored under <code>~/.mmr/sessions/</code>).</td></tr><tr><td><code>mmr config <init|show|validate…></code></td><td>Scaffold and inspect <code>.mmr.yaml</code> (including OSS-runtime example blocks).</td></tr><tr><td><code>mmr ack <add|list|rm|prune></code></td><td>Sticky acknowledgments — silence a finding by its stable key so it stops blocking across rounds.</td></tr><tr><td><code>mmr skill install --platform <name> | --all</code></td><td>Install a "use MMR for code review" skill into a project per agent CLI: Cursor (<code>.cursor/rules/mmr-review.mdc</code>), Gemini (<code>GEMINI.md</code>), Codex + Antigravity (shared <code>AGENTS.md</code> managed block). Supports <code>--dry-run</code>, <code>--force</code>, and <code>--dir</code>. <span class="fp" data-path="packages/mmr/src/commands/skill.ts:85">packages/mmr/src/commands/skill.ts:85</span></td></tr></tbody></table>
|
|
1574
1578
|
<pre><code class="language-bash"># Capture a job_id from a review, then fold in an agent channel:
|
|
1575
1579
|
mmr reconcile "$JOB_ID" --channel superpowers --input findings.json
|
|
1580
|
+
|
|
1581
|
+
# Install the MMR review skill into the current project for one or all agent CLIs:
|
|
1582
|
+
mmr skill install --platform cursor
|
|
1583
|
+
mmr skill install --all --dry-run
|
|
1576
1584
|
</code></pre>
|
|
1585
|
+
<div class="callout callout-info"><p><strong>Each agent CLI reads its own instruction file</strong>, so <code>mmr skill install</code> writes the
|
|
1586
|
+
skill in the matching convention: a dedicated <code>.cursor/rules/mmr-review.mdc</code> for
|
|
1587
|
+
Cursor, and an idempotent managed block (delimited by <code><!-- BEGIN mmr-skill --></code> and <code><!-- END mmr-skill --></code>) in <code>GEMINI.md</code>
|
|
1588
|
+
(Gemini) or <code>AGENTS.md</code> (Codex and Antigravity share the <code>AGENTS.md</code> standard, so
|
|
1589
|
+
both resolve to the same block). For the block-mode files, re-running rewrites only
|
|
1590
|
+
the managed block and leaves the rest of the file intact; the dedicated Cursor file
|
|
1591
|
+
is created fresh and needs <code>--force</code> to overwrite. The skill bodies are bundled with
|
|
1592
|
+
the package under <code>packages/mmr/templates/skills/</code> <span class="fp" data-path="packages/mmr/templates/skills/agents/mmr-review.md:1">packages/mmr/templates/skills/agents/mmr-review.md:1</span>.</p></div>
|
|
1577
1593
|
<h2 id="channel-architecture">Channel architecture</h2>
|
|
1578
1594
|
<p>A channel is <strong>pure config data</strong> — there is no per-channel code. The dispatcher
|
|
1579
1595
|
runs whatever <code>command</code> the channel defines, hands it the prompt, and parses its
|
|
@@ -129,12 +129,28 @@ mmr review --pr 123 --channels grok claude --sync --format json
|
|
|
129
129
|
| `mmr sessions <start\|list\|show\|end> <id>` | Manage multi-round review sessions (stored under `~/.mmr/sessions/`). |
|
|
130
130
|
| `mmr config <init\|show\|validate…>` | Scaffold and inspect `.mmr.yaml` (including OSS-runtime example blocks). |
|
|
131
131
|
| `mmr ack <add\|list\|rm\|prune>` | Sticky acknowledgments — silence a finding by its stable key so it stops blocking across rounds. |
|
|
132
|
+
| `mmr skill install --platform <name> \| --all` | Install a "use MMR for code review" skill into a project per agent CLI: Cursor (`.cursor/rules/mmr-review.mdc`), Gemini (`GEMINI.md`), Codex + Antigravity (shared `AGENTS.md` managed block). Supports `--dry-run`, `--force`, and `--dir`. :cite[packages/mmr/src/commands/skill.ts:85] |
|
|
132
133
|
|
|
133
134
|
```bash
|
|
134
135
|
# Capture a job_id from a review, then fold in an agent channel:
|
|
135
136
|
mmr reconcile "$JOB_ID" --channel superpowers --input findings.json
|
|
137
|
+
|
|
138
|
+
# Install the MMR review skill into the current project for one or all agent CLIs:
|
|
139
|
+
mmr skill install --platform cursor
|
|
140
|
+
mmr skill install --all --dry-run
|
|
136
141
|
```
|
|
137
142
|
|
|
143
|
+
:::callout{type=info}
|
|
144
|
+
**Each agent CLI reads its own instruction file**, so `mmr skill install` writes the
|
|
145
|
+
skill in the matching convention: a dedicated `.cursor/rules/mmr-review.mdc` for
|
|
146
|
+
Cursor, and an idempotent managed block (delimited by `<!-- BEGIN mmr-skill -->` and `<!-- END mmr-skill -->`) in `GEMINI.md`
|
|
147
|
+
(Gemini) or `AGENTS.md` (Codex and Antigravity share the `AGENTS.md` standard, so
|
|
148
|
+
both resolve to the same block). For the block-mode files, re-running rewrites only
|
|
149
|
+
the managed block and leaves the rest of the file intact; the dedicated Cursor file
|
|
150
|
+
is created fresh and needs `--force` to overwrite. The skill bodies are bundled with
|
|
151
|
+
the package under `packages/mmr/templates/skills/` :cite[packages/mmr/templates/skills/agents/mmr-review.md:1].
|
|
152
|
+
:::
|
|
153
|
+
|
|
138
154
|
## Channel architecture
|
|
139
155
|
|
|
140
156
|
A channel is **pure config data** — there is no per-channel code. The dispatcher
|
|
@@ -1 +1 @@
|
|
|
1
|
-
0.1.
|
|
1
|
+
0.1.8
|
|
@@ -1,13 +1,27 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: backend-fintech-observability
|
|
3
|
-
description:
|
|
4
|
-
|
|
3
|
+
description: >-
|
|
4
|
+
Trade event correlation; market-hours aware scheduling; SLOs for fintech systems; compliance logging; alerting
|
|
5
|
+
strategy.
|
|
6
|
+
topics:
|
|
7
|
+
- backend
|
|
8
|
+
- fintech
|
|
9
|
+
- observability
|
|
10
|
+
- tracing
|
|
11
|
+
- slos
|
|
12
|
+
- alerting
|
|
13
|
+
- correlation-id
|
|
14
|
+
- market-hours
|
|
5
15
|
volatility: evolving
|
|
6
|
-
last-reviewed:
|
|
16
|
+
last-reviewed: 2026-06-04
|
|
7
17
|
version-pin: null
|
|
8
18
|
sources:
|
|
9
19
|
- url: https://opentelemetry.io/docs/
|
|
20
|
+
hash: sha256:706e97cb13d09d70eee19f203147c630bd13148cb8c5d60fd2a9f4452dbf1559
|
|
21
|
+
retrieved: 2026-06-04
|
|
10
22
|
- url: https://sre.google/sre-book/service-level-objectives/
|
|
23
|
+
hash: sha256:449fb54ce65e05102fac46c797a08b86c5ab93ade2c70c63ae25e7648d687d7d
|
|
24
|
+
retrieved: 2026-06-04
|
|
11
25
|
---
|
|
12
26
|
|
|
13
27
|
Observability for a trading system is not generic APM with a finance skin — it is the ability to reconstruct any single order, end to end, across six or more services, on demand, years later, with timezone-correct timestamps and a stable correlation identifier. It is also the early-warning system that catches a sudden drop in fill rate at 09:31 ET before the desk calls. Done well it overlaps with — but does not replace — the immutable audit trail (`backend-fintech-compliance.md`).
|
|
@@ -1,13 +1,27 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: backend-fintech-order-lifecycle
|
|
3
|
-
description:
|
|
4
|
-
|
|
3
|
+
description: >-
|
|
4
|
+
Order state machine; fills, partial fills, cancellation; event-driven order tracking; idempotency; handling "unknown"
|
|
5
|
+
states.
|
|
6
|
+
topics:
|
|
7
|
+
- backend
|
|
8
|
+
- fintech
|
|
9
|
+
- orders
|
|
10
|
+
- state-machine
|
|
11
|
+
- fills
|
|
12
|
+
- partial-fills
|
|
13
|
+
- event-driven
|
|
14
|
+
- webhooks
|
|
5
15
|
volatility: evolving
|
|
6
|
-
last-reviewed:
|
|
16
|
+
last-reviewed: 2026-06-04
|
|
7
17
|
version-pin: null
|
|
8
18
|
sources:
|
|
9
19
|
- url: https://microservices.io/patterns/data/saga.html
|
|
20
|
+
hash: sha256:c42eac244bf94f8db7767ba131c1715066a2dd10beb1cd6f01e5f92e19d2f0b3
|
|
21
|
+
retrieved: 2026-06-04
|
|
10
22
|
- url: https://martinfowler.com/articles/patterns-of-distributed-systems/
|
|
23
|
+
hash: sha256:93092f76ea34af4d60c068180a063d9fde27ab6c7b604ba42337aeed023cab86
|
|
24
|
+
retrieved: 2026-06-04
|
|
11
25
|
---
|
|
12
26
|
|
|
13
27
|
Orders in a trading system are long-lived, asynchronous, externally mutated objects — the exact shape of problem a disciplined state machine is built for. This doc covers the canonical states and transitions, how fills and partial fills land, why "unknown" is a real state you cannot wish away, and the reconciliation posture that keeps internal bookkeeping aligned with the broker of record.
|
|
@@ -1,13 +1,27 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: backend-fintech-risk-management
|
|
3
|
-
description:
|
|
4
|
-
|
|
3
|
+
description: >-
|
|
4
|
+
Position limits, drawdown caps, circuit breakers, kill switches; pre-trade and post-trade risk checks; operational
|
|
5
|
+
risk controls.
|
|
6
|
+
topics:
|
|
7
|
+
- backend
|
|
8
|
+
- fintech
|
|
9
|
+
- risk
|
|
10
|
+
- position-limits
|
|
11
|
+
- drawdown
|
|
12
|
+
- circuit-breakers
|
|
13
|
+
- kill-switch
|
|
14
|
+
- pre-trade-checks
|
|
5
15
|
volatility: evolving
|
|
6
|
-
last-reviewed:
|
|
16
|
+
last-reviewed: 2026-06-04
|
|
7
17
|
version-pin: null
|
|
8
18
|
sources:
|
|
9
19
|
- url: https://martinfowler.com/bliki/CircuitBreaker.html
|
|
20
|
+
hash: sha256:73239948ec03887430a4d139e384e94bc640fec894fb1dce53b56abe579c5da4
|
|
21
|
+
retrieved: 2026-06-04
|
|
10
22
|
- url: https://microservices.io/patterns/reliability/circuit-breaker.html
|
|
23
|
+
hash: sha256:a117f72fc0d279ea99d4234ea8a8cc7bdf23d7ed59d94effc6129d613518a6fa
|
|
24
|
+
retrieved: 2026-06-04
|
|
11
25
|
---
|
|
12
26
|
|
|
13
27
|
Risk management in a trading system is the set of controls that stops a bad day from becoming a catastrophic one. It lives in two places: *before* an order goes to the broker (pre-trade checks that block) and *after* fills land (post-trade monitoring that alerts, throttles, or halts). Neither half is optional, and both are exercised continuously, not just during incidents.
|
|
@@ -1,13 +1,25 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: backend-fintech-testing
|
|
3
3
|
description: Deterministic backtests; financial-accuracy tests; broker sandbox testing; regulatory edge-case coverage.
|
|
4
|
-
topics:
|
|
4
|
+
topics:
|
|
5
|
+
- backend
|
|
6
|
+
- fintech
|
|
7
|
+
- testing
|
|
8
|
+
- determinism
|
|
9
|
+
- backtesting
|
|
10
|
+
- sandbox
|
|
11
|
+
- accuracy
|
|
12
|
+
- property-based
|
|
5
13
|
volatility: evolving
|
|
6
|
-
last-reviewed:
|
|
14
|
+
last-reviewed: 2026-06-04
|
|
7
15
|
version-pin: null
|
|
8
16
|
sources:
|
|
9
17
|
- url: https://docs.pact.io/
|
|
18
|
+
hash: sha256:404a36a35476bc730dc8b0bc66ecde4eb1295c63dd9c357f30d7c60aa24e960e
|
|
19
|
+
retrieved: 2026-06-04
|
|
10
20
|
- url: https://martinfowler.com/articles/practical-test-pyramid.html
|
|
21
|
+
hash: sha256:d5f669995439f1c7bb7109a8f5e52044f1b7f39e92115679518d2b762ca39eff
|
|
22
|
+
retrieved: 2026-06-04
|
|
11
23
|
---
|
|
12
24
|
|
|
13
25
|
Fintech tests have unusual requirements: bit-exact numeric accuracy, full determinism across runs and hosts, rich regulatory edge-case coverage, and realistic multi-session flows that span market-hours boundaries. A flakey fintech test is worse than no test — it hides the exact race conditions that cause real money to move incorrectly. This doc covers the patterns that keep backtests reproducible, numeric tests honest, broker integrations verifiable, and regulatory behavior exercised before it becomes an incident.
|
|
@@ -1,14 +1,28 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: backend-observability
|
|
3
3
|
description: Structured logging, distributed tracing, RED method metrics, SLO-based alerting, and operational dashboards
|
|
4
|
-
topics:
|
|
4
|
+
topics:
|
|
5
|
+
- backend
|
|
6
|
+
- observability
|
|
7
|
+
- logging
|
|
8
|
+
- tracing
|
|
9
|
+
- metrics
|
|
10
|
+
- alerting
|
|
11
|
+
- opentelemetry
|
|
12
|
+
- slo
|
|
5
13
|
volatility: evolving
|
|
6
|
-
last-reviewed:
|
|
14
|
+
last-reviewed: 2026-06-04
|
|
7
15
|
version-pin: null
|
|
8
16
|
sources:
|
|
9
17
|
- url: https://opentelemetry.io/docs/
|
|
18
|
+
hash: sha256:706e97cb13d09d70eee19f203147c630bd13148cb8c5d60fd2a9f4452dbf1559
|
|
19
|
+
retrieved: 2026-06-04
|
|
10
20
|
- url: https://sre.google/sre-book/service-level-objectives/
|
|
21
|
+
hash: sha256:449fb54ce65e05102fac46c797a08b86c5ab93ade2c70c63ae25e7648d687d7d
|
|
22
|
+
retrieved: 2026-06-04
|
|
11
23
|
- url: https://sre.google/sre-book/monitoring-distributed-systems/
|
|
24
|
+
hash: sha256:ea5268bca492024a399730734132c7513b4412b10098a207f2e3090eeae1a6fe
|
|
25
|
+
retrieved: 2026-06-04
|
|
12
26
|
---
|
|
13
27
|
|
|
14
28
|
Observability is the ability to answer arbitrary questions about a system's behavior using its outputs alone — without deploying new code. Investing in structured logging, distributed tracing, and SLO-based alerting before the first incident makes the difference between a 5-minute diagnosis and a 5-hour outage.
|
|
@@ -1,13 +1,24 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: backend-project-structure
|
|
3
|
-
description:
|
|
4
|
-
|
|
3
|
+
description: >-
|
|
4
|
+
Canonical directory layout for backend services — routes/controllers, services, models/repositories, middleware,
|
|
5
|
+
utils, config resolution, and dependency injection patterns
|
|
6
|
+
topics:
|
|
7
|
+
- backend
|
|
8
|
+
- project-structure
|
|
9
|
+
- architecture
|
|
10
|
+
- dependency-injection
|
|
11
|
+
- layers
|
|
5
12
|
volatility: stable
|
|
6
|
-
last-reviewed:
|
|
13
|
+
last-reviewed: 2026-06-04
|
|
7
14
|
version-pin: null
|
|
8
15
|
sources:
|
|
9
16
|
- url: https://martinfowler.com/eaaCatalog/
|
|
17
|
+
hash: sha256:45b80ec0b5893f07a6d0170851f87d0904617d34f3321a0f1aab0d8807b61be7
|
|
18
|
+
retrieved: 2026-06-04
|
|
10
19
|
- url: https://martinfowler.com/articles/injection.html
|
|
20
|
+
hash: sha256:a05822499fee06b676a369cc2fb0b2bdda6a589e7589382907b1ab531c26ef19
|
|
21
|
+
retrieved: 2026-06-04
|
|
11
22
|
---
|
|
12
23
|
|
|
13
24
|
A well-organized backend project is readable to a new engineer in minutes. The directory layout should communicate the architecture: which layer owns which responsibility, where to add a new feature, and where to find any piece of behavior. The most common structural failure is mixing concerns — business logic in controllers, database calls in services, HTTP parsing in repositories. Enforce boundaries through structure first, tooling second.
|
|
@@ -1,13 +1,26 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: backend-requirements
|
|
3
|
-
description:
|
|
4
|
-
|
|
3
|
+
description: >-
|
|
4
|
+
API-first design principles, SLA requirements (latency p99, uptime, throughput), scalability targets, backwards
|
|
5
|
+
compatibility commitments, and API versioning strategy
|
|
6
|
+
topics:
|
|
7
|
+
- backend
|
|
8
|
+
- requirements
|
|
9
|
+
- sla
|
|
10
|
+
- api
|
|
11
|
+
- versioning
|
|
12
|
+
- scalability
|
|
13
|
+
- performance
|
|
5
14
|
volatility: stable
|
|
6
|
-
last-reviewed:
|
|
15
|
+
last-reviewed: 2026-06-04
|
|
7
16
|
version-pin: null
|
|
8
17
|
sources:
|
|
9
18
|
- url: https://spec.openapis.org/oas/latest.html
|
|
19
|
+
hash: sha256:15f12e539a3ac811c5f18950bc9cff296b43a22ad4d50b4db8d533f37ebc1d23
|
|
20
|
+
retrieved: 2026-06-04
|
|
10
21
|
- url: https://sre.google/sre-book/service-level-objectives/
|
|
22
|
+
hash: sha256:449fb54ce65e05102fac46c797a08b86c5ab93ade2c70c63ae25e7648d687d7d
|
|
23
|
+
retrieved: 2026-06-04
|
|
11
24
|
---
|
|
12
25
|
|
|
13
26
|
Backend requirements are the contract the service makes with its consumers — other teams, external developers, and end users. Setting explicit SLAs, versioning policies, and scalability targets before any code is written eliminates the most expensive class of late-breaking architectural changes. A backend that surprises its callers with latency spikes or breaking changes destroys trust and creates cascading toil.
|
|
@@ -1,14 +1,29 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: backend-security
|
|
3
|
-
description:
|
|
4
|
-
|
|
3
|
+
description: >-
|
|
4
|
+
Input validation, SQL injection prevention, rate limiting, OWASP API Security Top 10, secrets management, and
|
|
5
|
+
dependency auditing
|
|
6
|
+
topics:
|
|
7
|
+
- backend
|
|
8
|
+
- security
|
|
9
|
+
- validation
|
|
10
|
+
- sql-injection
|
|
11
|
+
- rate-limiting
|
|
12
|
+
- owasp
|
|
13
|
+
- secrets
|
|
5
14
|
volatility: evolving
|
|
6
|
-
last-reviewed:
|
|
15
|
+
last-reviewed: 2026-06-04
|
|
7
16
|
version-pin: null
|
|
8
17
|
sources:
|
|
9
18
|
- url: https://owasp.org/www-project-api-security/
|
|
19
|
+
hash: sha256:ca850597dfc526453cb177306117d47a71e36b445b7c662d86ff42d777f2a035
|
|
20
|
+
retrieved: 2026-06-04
|
|
10
21
|
- url: https://owasp.org/www-project-top-ten/
|
|
22
|
+
hash: sha256:aa01e44bed66cf7d8c167a39e58c0ffd131110ae4baed6beb0195c4c875af72e
|
|
23
|
+
retrieved: 2026-06-04
|
|
11
24
|
- url: https://owasp.org/www-project-cheat-sheets/
|
|
25
|
+
hash: sha256:14ca69c2260d9f0de17b44c7c097fcdd3f9a23cf2bfe927cf3896ca9cbcd14fe
|
|
26
|
+
retrieved: 2026-06-04
|
|
12
27
|
---
|
|
13
28
|
|
|
14
29
|
Security vulnerabilities in backend services are disproportionately expensive to fix after launch — building in input validation, injection prevention, rate limiting, and secrets hygiene from the start is always cheaper than retrofitting them under pressure after a breach.
|
|
@@ -1,14 +1,27 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: backend-testing
|
|
3
3
|
description: API integration tests, contract testing, database testing patterns, mocking external services, and load testing
|
|
4
|
-
topics:
|
|
4
|
+
topics:
|
|
5
|
+
- backend
|
|
6
|
+
- testing
|
|
7
|
+
- integration-tests
|
|
8
|
+
- contract-testing
|
|
9
|
+
- database-testing
|
|
10
|
+
- mocking
|
|
11
|
+
- load-testing
|
|
5
12
|
volatility: stable
|
|
6
|
-
last-reviewed:
|
|
13
|
+
last-reviewed: 2026-06-04
|
|
7
14
|
version-pin: null
|
|
8
15
|
sources:
|
|
9
16
|
- url: https://docs.pact.io/
|
|
17
|
+
hash: sha256:404a36a35476bc730dc8b0bc66ecde4eb1295c63dd9c357f30d7c60aa24e960e
|
|
18
|
+
retrieved: 2026-06-04
|
|
10
19
|
- url: https://martinfowler.com/articles/practical-test-pyramid.html
|
|
20
|
+
hash: sha256:d5f669995439f1c7bb7109a8f5e52044f1b7f39e92115679518d2b762ca39eff
|
|
21
|
+
retrieved: 2026-06-04
|
|
11
22
|
- url: https://martinfowler.com/bliki/ContractTest.html
|
|
23
|
+
hash: sha256:0be8475d7f5e37f771ded4b200f1ee0dadbc35480fc4a5b1b2430748922e11c8
|
|
24
|
+
retrieved: 2026-06-04
|
|
12
25
|
---
|
|
13
26
|
|
|
14
27
|
Backend testing strategy determines how much confidence you have before every deploy — a well-layered test suite catches regressions at the fastest possible feedback loop while still exercising the real data layer and honoring API contracts with consumers.
|
|
@@ -1,13 +1,27 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: backend-worker-patterns
|
|
3
|
-
description:
|
|
4
|
-
|
|
3
|
+
description: >-
|
|
4
|
+
Background job frameworks, cron scheduling, event consumers, dead letter queues, retry strategies, and graceful
|
|
5
|
+
shutdown for workers
|
|
6
|
+
topics:
|
|
7
|
+
- backend
|
|
8
|
+
- workers
|
|
9
|
+
- bullmq
|
|
10
|
+
- celery
|
|
11
|
+
- temporal
|
|
12
|
+
- cron
|
|
13
|
+
- background-jobs
|
|
14
|
+
- dlq
|
|
5
15
|
volatility: evolving
|
|
6
|
-
last-reviewed:
|
|
16
|
+
last-reviewed: 2026-06-04
|
|
7
17
|
version-pin: null
|
|
8
18
|
sources:
|
|
9
19
|
- url: https://microservices.io/patterns/data/transactional-outbox.html
|
|
20
|
+
hash: sha256:0311303336376acb20c3f70729a67ea9e094546798a98276567257e6631122b0
|
|
21
|
+
retrieved: 2026-06-04
|
|
10
22
|
- url: https://sre.google/sre-book/handling-overload/
|
|
23
|
+
hash: sha256:8ca912a82390e7f61e8bbae7baab3a74489f5068d71dee1ff24aed99375e0373
|
|
24
|
+
retrieved: 2026-06-04
|
|
11
25
|
---
|
|
12
26
|
|
|
13
27
|
Background workers offload time-consuming and deferred work from the request path, but they introduce their own failure modes — jobs that silently vanish, duplicate executions, and unclean shutdowns during deploys all require deliberate design to prevent.
|
|
@@ -12,6 +12,15 @@ topics:
|
|
|
12
12
|
|
|
13
13
|
Dispatch code reviews to multiple AI model CLIs, poll for results, and collect reconciled findings with severity gating.
|
|
14
14
|
|
|
15
|
+
> **Scope & related skills.** This skill ships with Scaffold for Claude Code and
|
|
16
|
+
> shared-agent hosts (`.claude/skills/`, `.agents/skills/`). The MMR CLI itself can
|
|
17
|
+
> install an equivalent review skill into other agent CLIs — Cursor, Codex, Gemini,
|
|
18
|
+
> and Antigravity — via `mmr skill install` (see the
|
|
19
|
+
> [`mmr` reference guide](../../guides/mmr/index.md)). Those per-platform skill bodies
|
|
20
|
+
> live in `packages/mmr/templates/skills/` and are the source of truth for those
|
|
21
|
+
> platforms; keep this file's `mmr review` guidance in sync with them when the CLI
|
|
22
|
+
> surface changes.
|
|
23
|
+
|
|
15
24
|
## Quick Reference
|
|
16
25
|
|
|
17
26
|
`mmr review` works for any review target — not just PRs. Pick the input mode
|
package/package.json
CHANGED
package/skills/mmr/SKILL.md
CHANGED
|
@@ -12,6 +12,15 @@ topics:
|
|
|
12
12
|
|
|
13
13
|
Dispatch code reviews to multiple AI model CLIs, poll for results, and collect reconciled findings with severity gating.
|
|
14
14
|
|
|
15
|
+
> **Scope & related skills.** This skill ships with Scaffold for Claude Code and
|
|
16
|
+
> shared-agent hosts (`.claude/skills/`, `.agents/skills/`). The MMR CLI itself can
|
|
17
|
+
> install an equivalent review skill into other agent CLIs — Cursor, Codex, Gemini,
|
|
18
|
+
> and Antigravity — via `mmr skill install` (see the
|
|
19
|
+
> [`mmr` reference guide](../../guides/mmr/index.md)). Those per-platform skill bodies
|
|
20
|
+
> live in `packages/mmr/templates/skills/` and are the source of truth for those
|
|
21
|
+
> platforms; keep this file's `mmr review` guidance in sync with them when the CLI
|
|
22
|
+
> surface changes.
|
|
23
|
+
|
|
15
24
|
## Quick Reference
|
|
16
25
|
|
|
17
26
|
`mmr review` works for any review target — not just PRs. Pick the input mode
|