Skip to content

docs: make RedisForge hardening plan agent-executable - #4

Merged
SShogun merged 2 commits into
masterfrom
docs/agent-zero-hardening-execution
Oct 5, 2026
Merged

SShogun merged 2 commits into
masterfrom
docs/agent-zero-hardening-execution

Conversation

@SShogun

@SShogun SShogun commented Oct 5, 2026 •

Copy link
Copy Markdown
Owner

Reworks the two RedisForge notes into an automation-safe execution system for daily Agent Zero runs.

  • turns architecture-limitations.md into the current-state baseline, target invariants, agent permissions/stop conditions, and verification contract
  • turns the principal-engineer hardening plan into milestone/part task IDs with dependencies, bounded scope, acceptance gates, and verification
  • adds the daily task-selection, local-branch/local-commit, evidence-report, and human push/CI/merge workflow

No production code is changed.

Summary by Sourcery

Make RedisForge’s documentation safe for incremental automated hardening by defining its architectural contract, executable task queue, verification evidence, and human-controlled merge workflow.

Enhancements:

  • Define RedisForge’s current architecture, guarantees, target direction, invariants, agent permissions, stop conditions, verification baseline, and evidence requirements.
  • Convert the hardening roadmap into dependency-ordered, bounded task IDs with acceptance criteria, verification steps, milestone gates, and explicit failure/recovery expectations.
  • Document a daily Agent Zero workflow for task selection, local branching and commits, evidence reporting, and human-controlled push, CI, and merge progression.

Documentation:

  • Replace the architecture limitations note with a current-state contract and execution guardrails.
  • Expand the hardening plan into an agent-executable queue covering durable persistence, transactional outbox delivery, idempotent consumers, projections, operations, and portfolio evidence.

@sourcery-ai

sourcery-ai Bot commented Oct 5, 2026 •

Copy link
Copy Markdown

Reviewer's Guide

This documentation-only PR converts RedisForge’s two hardening notes into a bounded, dependency-aware Agent Zero execution system: one establishes the current guarantees, target invariants, guardrails, and verification contract, while the other provides executable milestones, acceptance gates, evidence requirements, and human-controlled Git/CI workflow.

Sequence diagram for human-controlled review and merge workflow

sequenceDiagram
    participant Agent as Agent Zero
    participant Branch as Local branch
    participant User as Human reviewer
    participant CI as GitHub CI
    participant Master as master

    Agent->>Branch: create local commit
    Agent-->>User: evidence report and commit SHA
    User->>Branch: inspect diff and correct if needed
    User->>CI: push branch
    CI-->>User: verification result
    alt CI passes
        User->>Master: merge reviewed branch
    else CI fails
        User->>Branch: fix and rerun verification
    end
Loading

Flow diagram for daily Agent Zero task execution

flowchart TD
    START[Read baseline and execution queue] --> INSPECT[Inspect current master and recent history]
    INSPECT --> SELECT[Select first incomplete task with satisfied dependencies]
    SELECT --> IMPLEMENT[Implement one bounded task]
    IMPLEMENT --> VERIFY[Run targeted and applicable repository verification]
    VERIFY --> DECIDE{Verification and scope acceptable?}
    DECIDE -->|No| REPORT_BLOCKED[Report failure or blocked status]
    DECIDE -->|Yes| COMMIT[Create local commit]
    COMMIT --> REPORT_READY[Produce evidence report for user review]
    REPORT_BLOCKED --> STOP[Stop]
    REPORT_READY --> STOP
Loading

File-Level Changes

Change Details Files
Reframe the architecture note as an evidence-based current-state contract and target architecture baseline.
  • Document current guarantees and limitations across durability, search, idempotency, audit, health, and Redis topology.
  • Define PostgreSQL as the target system of record with Redis retained for cache, projections, streams, and observability.
  • Add non-negotiable invariants, agent permissions, mandatory stop conditions, verification rules, evidence requirements, and revalidation guidance.
notes/architecture-limitations.md
Replace the high-level hardening notes with a dependency-ordered, task-level execution queue.
  • Define daily execution policy, branch naming, local-commit rules, completion criteria, and human-controlled push/CI/merge gates.
  • Split the roadmap into RF-M0 through RF-M5 milestones covering lifecycle/API contracts, durable persistence and transactional outbox, reliable delivery and idempotent consumers, projections, operations, and portfolio evidence.
  • Give each task dependencies, bounded scope, acceptance criteria, and verification commands or evidence expectations.
notes/redisforge-principal-engineer-hardening-plan.md
Establish a standardized reporting and verification contract for automated implementation runs.
  • Require exact task/base/branch/file/behavior details and PASS, FAIL, or UNVERIFIED status for every verification command.
  • Define failure-injection, retention, replay, projection, lifecycle, benchmark, and CI evidence expectations throughout the roadmap.
  • Explicitly prohibit production-code changes outside the selected task and prohibit remote Git or deployment actions.
notes/architecture-limitations.md
notes/redisforge-principal-engineer-hardening-plan.md

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

@SShogun
SShogun marked this pull request as ready for review October 5, 2026 17:41
Copilot AI balanced review requested due to automatic review settings October 5, 2026 17:41

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@SShogun
SShogun merged commit 4ebad9a into master Oct 5, 2026
3 checks passed

@sourcery-ai sourcery-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey - I've found 8 issues

Prompt for AI Agents
Please address the comments from this code review:

## Individual Comments

### Comment 1
<location path="notes/architecture-limitations.md" line_range="21" />
<code_context>
+
+| Area | Current guarantee | Current limitation |
+| --- | --- | --- |
+| Item durability | CRUD succeeds against the in-process repository and may populate RedisJSON | The authoritative fallback is memory and is recreated on startup; RedisJSON can outlive memory, so GET/List/search can diverge after restart |
+| Search | RediSearch indexes RedisJSON keys | Update invalidates the cache key, so an item can disappear from search until a later read backfills it; there is no authoritative fallback scan |
+| Idempotency | Bloom may reject a previously seen key | Bloom false positives can reject valid requests; errors fail open; there is no durable request/response receipt |
</code_context>
<issue_to_address>
**Pre-cutover items disappear or diverge**

When redisJSON contains items absent from PostgreSQL when RF-M1-P03 makes PostgreSQL authoritative, production reads switch to PostgreSQL without specifying how to handle Redis-only items or stale cache entries. Those items disappear from durable reads, or `CacheItemRepo.GetByID` continues serving entries that `List` omits.

Specify how cutover imports or discards Redis-only items and invalidates stale Redis cache entries.

Also at `notes/redisforge-principal-engineer-hardening-plan.md:266-273`, `notes/architecture-limitations.md:22`.
</issue_to_address>

### Comment 2
<location path="notes/redisforge-principal-engineer-hardening-plan.md" line_range="318" />
<code_context>
+  - item;
+  - idempotency receipt when supplied;
+  - outbox event with stable `event_id`, aggregate/item ID, item version, schema version, correlation/request ID where available.
+- Eliminate best-effort asynchronous audit emission from the create correctness path.
+
+**Acceptance**
</code_context>
<issue_to_address>
**Out-of-order updates lose search changes**

When outbox delivery reorders events that contain deltas, the projector applies version N+1 and rejects version N as stale, permanently omitting changes carried only by N from the search projection.

Require full-snapshot events or sequential processing with gap repair before the projector skips older versions.

Also at `notes/redisforge-principal-engineer-hardening-plan.md:316`, `notes/redisforge-principal-engineer-hardening-plan.md:544`.
</issue_to_address>

### Comment 3
<location path="notes/redisforge-principal-engineer-hardening-plan.md" line_range="340" />
<code_context>
+
+**Scope**
+
+- Update/delete create outbox events in the same item transaction.
+- Implement the previously documented optimistic-concurrency contract.
+- Ensure item versions advance monotonically.
</code_context>
<issue_to_address>
**Updates and deletes emit duplicate audit events**

When RF-M1-P06 is implemented by adding update/delete outbox events while retaining the existing handler emits, when RF-M1-P06 adds outbox events without removing the existing handler emits, update and delete requests publish both a best-effort `EmitAsync` event and an outbox event. They have distinct event IDs, so downstream deduplication does not prevent duplicate audit effects.

Add to RF-M1-P06 scope that update/delete must stop publishing directly through `EmitAsync` once their durable outbox events are in place.
</issue_to_address>

### Comment 4
<location path="notes/architecture-limitations.md" line_range="94" />
<code_context>
+- the selected task's prerequisite is not satisfied on the current base branch;
+- implementation requires a product/architecture decision not already made in these notes;
+- a required dependency, Docker service, credential, or local capability is unavailable;
+- a failing test appears unrelated to the task and the root cause is not safely attributable;
+- completing the task would require broadening scope beyond its stated acceptance criteria.
+
</code_context>
<issue_to_address>
**Docker checks have conflicting instructions**

When docker is unavailable for an integration check but runnable targeted checks pass, the stop rule requires halting when a Docker service is unavailable, while the verification policy permits committing when Docker prevents a CI-equivalent check. The agent cannot determine whether to stop or proceed with an unverified check.

Clarify that the Docker environment-limitation exception permits proceeding when runnable targeted checks pass, consistent with the verification policy.

Also at `notes/redisforge-principal-engineer-hardening-plan.md:77`, `notes/architecture-limitations.md:93`.
</issue_to_address>

### Comment 5
<location path="notes/redisforge-principal-engineer-hardening-plan.md" line_range="84" />
<code_context>
+A task is complete only when:
+
+- its acceptance criteria are demonstrably satisfied;
+- directly relevant tests exist and pass;
+- no known regression remains;
+- changed behavior is documented where necessary;
</code_context>
<issue_to_address>
**Documentation tasks cannot advance**

When A documentation-only task satisfies its acceptance criteria without adding tests, the global completion rule still requires directly relevant tests to exist and pass, so the agent cannot mark the task complete or advance the queue without adding irrelevant tests.

Make the test requirement conditional on the task and define applicable verification for documentation-only tasks.

Also at `notes/redisforge-principal-engineer-hardening-plan.md:83`, `notes/redisforge-principal-engineer-hardening-plan.md:122-124`.
</issue_to_address>

### Comment 6
<location path="notes/redisforge-principal-engineer-hardening-plan.md" line_range="41-46" />
<code_context>
+2. Inspect the current `master` branch and recent history.
+3. Starting from the first task in queue order, evaluate whether its acceptance criteria are already satisfied by the current repository.
+4. Skip already-satisfied tasks, recording the evidence used.
+5. Select the first incomplete task whose dependencies are satisfied.
+6. Implement only that task.
+7. Run targeted verification, then the applicable repository verification baseline.
+8. Create a local commit only when there is no known failing verification.
+9. Stop and produce the required report.
+
+The agent must **not** continue into the next task during the same scheduled run, even if the selected task finishes quickly.
+
</code_context>
<issue_to_address>
**Exhausted queue has no valid report**

When A scheduled run finds that all queue tasks are complete, the selection workflow has no terminal outcome, while the mandatory report requires a task ID and title and defines no queue-complete status. The agent cannot produce a valid report for the finished queue.

Define a queue-complete selection outcome and a matching report status that does not require a task ID or title.

Also at `notes/redisforge-principal-engineer-hardening-plan.md:888-889`.
</issue_to_address>

### Comment 7
<location path="notes/architecture-limitations.md" line_range="129" />
<code_context>
+| Base | Base branch and starting commit |
+| Changed files | Exact paths |
+| Behavior changed | Concise before/after explanation |
+| Tests added/changed | What property they prove |
+| Verification | Each command and PASS / FAIL / UNVERIFIED |
+| Risks | Remaining uncertainty or follow-up |
</code_context>
<issue_to_address>
**Required report evidence is omitted**

When an agent follows the hardening plan’s exact report template, the template omits required test-property evidence and the diff summary, so the resulting report does not provide all the evidence the architecture contract requires.

Align the exact report template with the required report contents, including tests added or changed and the properties they prove, plus the diff summary.

Also at `notes/redisforge-principal-engineer-hardening-plan.md:886-929`.
</issue_to_address>

### Comment 8
<location path="notes/architecture-limitations.md" line_range="19-27" />
<code_context>
+| Area | Current guarantee | Current limitation |
</code_context>
<issue_to_address>
**Guarantee matrix is undiscoverable**

When a visitor uses the README or docs index to find RedisForge’s guarantees, the README and docs index link to `docs/failure-semantics.md`, not this matrix or the current-state baseline. Visitors following the documented entry points therefore miss the new guarantee matrix, leaving RF-M0-P01’s requirement for a README- or docs-index-linked matrix unmet.

Link the baseline or its guarantee matrix from the README or docs index.
</issue_to_address>

Sourcery assessment

Approval pending. 7 findings to address first.

Blocking findings: notes/architecture-limitations.md:21, notes/redisforge-principal-engineer-hardening-plan.md:318, notes/redisforge-principal-engineer-hardening-plan.md:340, notes/architecture-limitations.md:94, notes/redisforge-principal-engineer-hardening-plan.md:84, and 2 more


Sourcery is free for open source - if you like our reviews please consider sharing them ✨


| Area | Current guarantee | Current limitation |
| --- | --- | --- |
| Item durability | CRUD succeeds against the in-process repository and may populate RedisJSON | The authoritative fallback is memory and is recreated on startup; RedisJSON can outlive memory, so GET/List/search can diverge after restart |

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Medium · Pre-cutover items disappear or diverge

When redisJSON contains items absent from PostgreSQL when RF-M1-P03 makes PostgreSQL authoritative, production reads switch to PostgreSQL without specifying how to handle Redis-only items or stale cache entries. Those items disappear from durable reads, or CacheItemRepo.GetByID continues serving entries that List omits.

Specify how cutover imports or discards Redis-only items and invalidates stale Redis cache entries.

Also at notes/redisforge-principal-engineer-hardening-plan.md:266-273, notes/architecture-limitations.md:22.

Prompt for AI agents
In `notes/architecture-limitations.md` at line 21:

**Pre-cutover items disappear or diverge**

When redisJSON contains items absent from PostgreSQL when RF-M1-P03 makes PostgreSQL authoritative, production reads switch to PostgreSQL without specifying how to handle Redis-only items or stale cache entries. Those items disappear from durable reads, or `CacheItemRepo.GetByID` continues serving entries that `List` omits.

Specify how cutover imports or discards Redis-only items and invalidates stale Redis cache entries.

Also at `notes/redisforge-principal-engineer-hardening-plan.md:266-273`, `notes/architecture-limitations.md:22`.

- item;
- idempotency receipt when supplied;
- outbox event with stable `event_id`, aggregate/item ID, item version, schema version, correlation/request ID where available.
- Eliminate best-effort asynchronous audit emission from the create correctness path.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Medium · Out-of-order updates lose search changes

When outbox delivery reorders events that contain deltas, the projector applies version N+1 and rejects version N as stale, permanently omitting changes carried only by N from the search projection.

Require full-snapshot events or sequential processing with gap repair before the projector skips older versions.

Also at notes/redisforge-principal-engineer-hardening-plan.md:316, notes/redisforge-principal-engineer-hardening-plan.md:544.

Prompt for AI agents
In `notes/redisforge-principal-engineer-hardening-plan.md` at line 318:

**Out-of-order updates lose search changes**

When outbox delivery reorders events that contain deltas, the projector applies version N+1 and rejects version N as stale, permanently omitting changes carried only by N from the search projection.

Require full-snapshot events or sequential processing with gap repair before the projector skips older versions.

Also at `notes/redisforge-principal-engineer-hardening-plan.md:316`, `notes/redisforge-principal-engineer-hardening-plan.md:544`.


**Scope**

- Update/delete create outbox events in the same item transaction.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Medium · Updates and deletes emit duplicate audit events

When RF-M1-P06 is implemented by adding update/delete outbox events while retaining the existing handler emits, when RF-M1-P06 adds outbox events without removing the existing handler emits, update and delete requests publish both a best-effort EmitAsync event and an outbox event. They have distinct event IDs, so downstream deduplication does not prevent duplicate audit effects.

Add to RF-M1-P06 scope that update/delete must stop publishing directly through EmitAsync once their durable outbox events are in place.

Prompt for AI agents
In `notes/redisforge-principal-engineer-hardening-plan.md` at line 340:

**Updates and deletes emit duplicate audit events**

When RF-M1-P06 is implemented by adding update/delete outbox events while retaining the existing handler emits, when RF-M1-P06 adds outbox events without removing the existing handler emits, update and delete requests publish both a best-effort `EmitAsync` event and an outbox event. They have distinct event IDs, so downstream deduplication does not prevent duplicate audit effects.

Add to RF-M1-P06 scope that update/delete must stop publishing directly through `EmitAsync` once their durable outbox events are in place.

- the selected task's prerequisite is not satisfied on the current base branch;
- implementation requires a product/architecture decision not already made in these notes;
- a required dependency, Docker service, credential, or local capability is unavailable;
- a failing test appears unrelated to the task and the root cause is not safely attributable;

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Medium · Docker checks have conflicting instructions

When docker is unavailable for an integration check but runnable targeted checks pass, the stop rule requires halting when a Docker service is unavailable, while the verification policy permits committing when Docker prevents a CI-equivalent check. The agent cannot determine whether to stop or proceed with an unverified check.

Clarify that the Docker environment-limitation exception permits proceeding when runnable targeted checks pass, consistent with the verification policy.

Also at notes/redisforge-principal-engineer-hardening-plan.md:77, notes/architecture-limitations.md:93.

Prompt for AI agents
In `notes/architecture-limitations.md` at line 94:

**Docker checks have conflicting instructions**

When docker is unavailable for an integration check but runnable targeted checks pass, the stop rule requires halting when a Docker service is unavailable, while the verification policy permits committing when Docker prevents a CI-equivalent check. The agent cannot determine whether to stop or proceed with an unverified check.

Clarify that the Docker environment-limitation exception permits proceeding when runnable targeted checks pass, consistent with the verification policy.

Also at `notes/redisforge-principal-engineer-hardening-plan.md:77`, `notes/architecture-limitations.md:93`.

A task is complete only when:

- its acceptance criteria are demonstrably satisfied;
- directly relevant tests exist and pass;

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Medium · Documentation tasks cannot advance

When A documentation-only task satisfies its acceptance criteria without adding tests, the global completion rule still requires directly relevant tests to exist and pass, so the agent cannot mark the task complete or advance the queue without adding irrelevant tests.

Make the test requirement conditional on the task and define applicable verification for documentation-only tasks.

Also at notes/redisforge-principal-engineer-hardening-plan.md:83, notes/redisforge-principal-engineer-hardening-plan.md:122-124.

Prompt for AI agents
In `notes/redisforge-principal-engineer-hardening-plan.md` at line 84:

**Documentation tasks cannot advance**

When A documentation-only task satisfies its acceptance criteria without adding tests, the global completion rule still requires directly relevant tests to exist and pass, so the agent cannot mark the task complete or advance the queue without adding irrelevant tests.

Make the test requirement conditional on the task and define applicable verification for documentation-only tasks.

Also at `notes/redisforge-principal-engineer-hardening-plan.md:83`, `notes/redisforge-principal-engineer-hardening-plan.md:122-124`.

Comment on lines +41 to +46
5. Select the first incomplete task whose dependencies are satisfied.
6. Implement only that task.
7. Run targeted verification, then the applicable repository verification baseline.
8. Create a local commit only when there is no known failing verification.
9. Stop and produce the required report.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Medium · Exhausted queue has no valid report

When A scheduled run finds that all queue tasks are complete, the selection workflow has no terminal outcome, while the mandatory report requires a task ID and title and defines no queue-complete status. The agent cannot produce a valid report for the finished queue.

Define a queue-complete selection outcome and a matching report status that does not require a task ID or title.

Also at notes/redisforge-principal-engineer-hardening-plan.md:888-889.

Prompt for AI agents
In `notes/redisforge-principal-engineer-hardening-plan.md` at lines 41-46:

**Exhausted queue has no valid report**

When A scheduled run finds that all queue tasks are complete, the selection workflow has no terminal outcome, while the mandatory report requires a task ID and title and defines no queue-complete status. The agent cannot produce a valid report for the finished queue.

Define a queue-complete selection outcome and a matching report status that does not require a task ID or title.

Also at `notes/redisforge-principal-engineer-hardening-plan.md:888-889`.

| Base | Base branch and starting commit |
| Changed files | Exact paths |
| Behavior changed | Concise before/after explanation |
| Tests added/changed | What property they prove |

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Medium · Required report evidence is omitted

When an agent follows the hardening plan’s exact report template, the template omits required test-property evidence and the diff summary, so the resulting report does not provide all the evidence the architecture contract requires.

Align the exact report template with the required report contents, including tests added or changed and the properties they prove, plus the diff summary.

Also at notes/redisforge-principal-engineer-hardening-plan.md:886-929.

Prompt for AI agents
In `notes/architecture-limitations.md` at line 129:

**Required report evidence is omitted**

When an agent follows the hardening plan’s exact report template, the template omits required test-property evidence and the diff summary, so the resulting report does not provide all the evidence the architecture contract requires.

Align the exact report template with the required report contents, including tests added or changed and the properties they prove, plus the diff summary.

Also at `notes/redisforge-principal-engineer-hardening-plan.md:886-929`.

Comment on lines +19 to +27
| Area | Current guarantee | Current limitation |
| --- | --- | --- |
| Item durability | CRUD succeeds against the in-process repository and may populate RedisJSON | The authoritative fallback is memory and is recreated on startup; RedisJSON can outlive memory, so GET/List/search can diverge after restart |
| Search | RediSearch indexes RedisJSON keys | Update invalidates the cache key, so an item can disappear from search until a later read backfills it; there is no authoritative fallback scan |
| Idempotency | Bloom may reject a previously seen key | Bloom false positives can reject valid requests; errors fail open; there is no durable request/response receipt |
| Audit publication | Successful `XADD` gives a recoverable stream entry while retained | Producer failure or shutdown can lose best-effort emits; bounded trimming is not permanent retention |
| Audit processing | Consumer-group recovery can redeliver retained pending entries | The worker logs and ACKs only; it has no durable audit sink or exactly-once guarantee |
| Health | `/healthz` proves the HTTP process can answer | It does not prove Redis or any future database dependency is ready |
| Redis topology | Standalone, Sentinel, and Cluster clients are configurable | Startup also depends on RedisJSON, RedisBloom, and RediSearch module availability |

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚪ Low · Guarantee matrix is undiscoverable

When a visitor uses the README or docs index to find RedisForge’s guarantees, the README and docs index link to docs/failure-semantics.md, not this matrix or the current-state baseline. Visitors following the documented entry points therefore miss the new guarantee matrix, leaving RF-M0-P01’s requirement for a README- or docs-index-linked matrix unmet.

Link the baseline or its guarantee matrix from the README or docs index.

Prompt for AI agents
In `notes/architecture-limitations.md` at lines 19-27:

**Guarantee matrix is undiscoverable**

When a visitor uses the README or docs index to find RedisForge’s guarantees, the README and docs index link to `docs/failure-semantics.md`, not this matrix or the current-state baseline. Visitors following the documented entry points therefore miss the new guarantee matrix, leaving RF-M0-P01’s requirement for a README- or docs-index-linked matrix unmet.

Link the baseline or its guarantee matrix from the README or docs index.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants