Skip to content

Commit decf141

Browse files
committed
fix: Address CodeRabbit review feedback on PRD-060
- Nuance manifest gap claim: validation does process scheduled triggers (uniqueness, prefix parsing) but no schedule is registered - trigger is syntactically accepted but operationally inert - Document manifest_version_id as a cross-schema soft reference to control-plane manifest versions (no FK constraint) - Remove duplicate PRD-060 status entry from README In Progress section (keep only in Not Started)
1 parent cbd5b26 commit decf141

2 files changed

Lines changed: 12 additions & 10 deletions

File tree

docs/prd/060-per-tenant-scheduled-execution.md

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -38,15 +38,15 @@ Meridian's scheduler infrastructure has three gaps that compound as the platform
3838
unauthenticated code path. This fails SOC 2 CC6.1 (logical access
3939
controls) and ISO 27001 A.5.16 (identity management).
4040

41-
2. **Manifest contract is broken.** The manifest proto declares
42-
`scheduled:` triggers (`manifest.proto:289-298`) but has no cron
41+
2. **Manifest schedule gap.** The manifest proto declares
42+
`scheduled:` triggers (`manifest.proto:289-298`) and validates
43+
them (uniqueness checks, prefix parsing), but has no cron
4344
expression field and no bridge to the `CronScheduler`
44-
infrastructure. A tenant writes
45-
`trigger: "scheduled:monthly_billing"`, the manifest validates,
46-
and nothing happens. The MCP server documentation
47-
(`reference.go:212`) contradicts the manifest examples -
48-
documenting `scheduled:<cron-expression>` while manifests use
49-
`scheduled:<name>`.
45+
infrastructure. Validation passes but no schedule is registered
46+
- the trigger is syntactically accepted but operationally inert.
47+
The MCP server documentation (`reference.go:212`) contradicts
48+
the manifest examples - documenting `scheduled:<cron-expression>`
49+
while manifests use `scheduled:<name>`.
5050

5151
3. **Missing scaling guardrails.** `executeJob()` spawns unbounded
5252
goroutines via `lifecycle.ExecuteGuarded()` with no concurrency
@@ -257,7 +257,10 @@ CREATE TABLE tenant_schedule (
257257
);
258258
```
259259

260-
`manifest_version_id` provides traceability: which manifest version created this schedule.
260+
`manifest_version_id` provides traceability: which manifest version
261+
created this schedule. This references control-plane manifest versions
262+
(cross-schema, no FK constraint) - a soft reference for audit/debugging
263+
purposes, not a hard database relationship.
261264

262265
#### B.2: Manifest Application Pipeline
263266

docs/prd/README.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,6 @@ stateDiagram-v2
6666
| PRD | Task Master Tag | Tasks |
6767
|-----|-----------------|-------|
6868
| [Test Coverage to 80%](048-test-coverage-80.md) | `test-coverage-80` | 0/13 done |
69-
| [Per-Tenant Scheduled Execution](060-per-tenant-scheduled-execution.md) | `remove-platform-ref` (Deliverable A) | Draft |
7069

7170
#### Not Started
7271

0 commit comments

Comments
 (0)