Skip to content

docs(readme): T-135 Sprint 1 quickstart + smoke probe (closes #49)#67

Merged
mpiton merged 2 commits into
mainfrom
feat/t135-readme-quickstart
May 11, 2026
Merged

docs(readme): T-135 Sprint 1 quickstart + smoke probe (closes #49)#67
mpiton merged 2 commits into
mainfrom
feat/t135-readme-quickstart

Conversation

@mpiton
Copy link
Copy Markdown
Owner

@mpiton mpiton commented May 11, 2026

Summary

  • Replace generic Setup with Quickstart (clone → ./scripts/install-hooks.sh → pnpm exec tauri dev) targeting ARCHI.md §23 onboarding (< 5 min fresh clone).
  • Add Verify the Sprint 1 smoke flow subsection that mirrors scripts/smoke-e2e.sh (pilot-gated dev server + tauri-pilot ipc tasks_list --args '{}' — note the v0.5 --args form, not the v0.4 positional '{}' referenced in the issue body).
  • Add What works in Sprint 1 section enumerating landed deliverables (hexagonal layout, libsql + V001, AppContainer::build, tasks_list IPC, TauriEventPublisher, tracing redaction, Sidebar/WelcomeScreen, Zustand useTaskStore, i18n FR+EN, codegen-types, llvm-cov 75 gate, smoke E2E gate).
  • Add explicit Architecture overview link to ARCHI.md §4 — Layout du repo (GFM anchor #4-layout-du-repo).
  • Pin tauri-pilot-cli install hint to =0.5.1 --locked (matches tauri-plugin-pilot = "0.5.1" in src-tauri/Cargo.toml, same hardening rationale as PR feat(ci): Sprint 1 smoke E2E + tauri-pilot wiring (T-134) #66).
  • Add Smoke E2E badge alongside CI / Release / CodSpeed.
  • Update Status line from "Sprint 0 closure" to "Sprint 1 closure — smoke E2E gate green on main".
  • Replace pre-existing broken [AGPL-3.0](LICENSE) link with https://www.gnu.org/licenses/agpl-3.0 (no LICENSE file in repo; matches badge target). Adding the actual LICENSE file is out of scope.

Why

Closes the Sprint 1 documentation gate. CHANGELOG [Unreleased] already enumerated all 130 Sprint 1 entries (verified each spec-required entry present via grep: hexagonal, AppConfig, ensure_dirs, tracing redaction, libsql V001, domain/tasks, EventPublisher, AppContainer, tasks_list, codegen-types, Sidebar/WelcomeScreen/useTaskStore/i18n, UI primitives, llvm-cov gate). Only the README delta remained, blocked on T-134 which now landed via PR #66.

Changes

  • README.md — rewrite (+42 / -6).
  • CHANGELOG.md — no change (already complete).

Acceptance criteria (T-135)

  • README quickstart works for a fresh clone — every command verified against repo state (scripts/install-hooks.sh exists, pnpm exec tauri dev valid, smoke probe matches scripts/smoke-e2e.sh:140,191, tauri-pilot-cli pin matches Cargo manifest).
  • CHANGELOG [Unreleased] lists all Sprint 1 additions — verified spec-required entries present.
  • No broken markdown link — all internal targets (ARCHI.md, package.json, rust-toolchain.toml, scripts/smoke-e2e.sh) exist; pre-existing broken LICENSE link replaced with canonical URL.

Test plan

Dependencies

Out of scope (intentional)

  • Adding a real LICENSE file (separate housekeeping PR).
  • Fixing scripts/install-hooks.sh pnpm@9 install hint (separate fix).
  • Documenting Corepack use vs prepare deprecation (Node-version-dependent).

Summary by CodeRabbit

  • Documentation
    • Updated project status to reflect Sprint 1 completion and current capabilities
    • Added Smoke E2E badge and noted Smoke E2E workflow status on main
    • Revised quickstart with install-hooks and a pilot-gated verification step
    • Documented milestone checklist of supported features and deferred items
    • Updated development prerequisites with explicit tooling guidance
    • Added architecture dependency rules and note about CI architecture test
    • Updated license link to AGPL-3.0

Review Change Stack

Review Change Stack

)

- Replace generic Setup with "Quickstart" section: clone, install-hooks, `pnpm exec tauri dev` boot flow targeting the ARCHI.md §23 onboarding criterion (< 5 min on a fresh clone).
- Add "Verify the Sprint 1 smoke flow" subsection mirroring `scripts/smoke-e2e.sh` (pilot-gated dev server + `tauri-pilot ipc tasks_list --args '{}'` probe with the v0.5 `--args` form, not the v0.4 positional `'{}'` referenced in the issue body).
- Add "What works in Sprint 1" section enumerating the landed deliverables (hexagonal layout, libsql + V001, `AppContainer::build`, `tasks_list` IPC, `TauriEventPublisher`, `tracing` redaction, Sidebar/WelcomeScreen, Zustand `useTaskStore`, i18n FR+EN, codegen-types, llvm-cov 75 gate, smoke E2E gate) so the README delta after Sprint 0 is visible without diffing CHANGELOG.
- Add explicit link "ARCHI.md §4 — Layout du repo" (GFM anchor `#4-layout-du-repo`) for full architecture rationale.
- Pin `tauri-pilot-cli` install hint to `=0.5.1 --locked` to match `tauri-plugin-pilot = "0.5.1"` in `src-tauri/Cargo.toml` (same hardening rationale as PR #66 CodeRabbit fix).
- Add Smoke E2E badge alongside CI / Release / CodSpeed.
- Update Status line from "Sprint 0 closure" to "Sprint 1 closure — smoke E2E gate green on main".
- Replace pre-existing broken `[AGPL-3.0](LICENSE)` link with the canonical `gnu.org/licenses/agpl-3.0` URL (no `LICENSE` file in repo; matches the badge target). Adding the file itself is out of scope.

CHANGELOG `[Unreleased]` already enumerates Sprint 1 additions (130 entries, verified each spec-required entry present: hexagonal, AppConfig, ensure_dirs, tracing redaction, libsql V001, domain/tasks, EventPublisher, AppContainer, tasks_list, codegen-types, Sidebar/WelcomeScreen/useTaskStore/i18n, UI primitives, llvm-cov gate). No CHANGELOG change needed.

Tests: doc-only (per T-135 spec).
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 11, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 3369770f-1808-4b69-91c0-42fadf868cda

📥 Commits

Reviewing files that changed from the base of the PR and between 9773c83 and bc5c630.

📒 Files selected for processing (1)
  • README.md

📝 Walkthrough

Walkthrough

README updated to mark Sprint 1 closure: new Smoke E2E badge and status line, expanded dev tooling and Smoke/E2E prerequisites, rewritten Quickstart with install-hooks and tauri-pilot IPC verification, a detailed Sprint 1 feature checklist, an explicit hexagonal architecture rule, and AGPL-3.0 license link.

Changes

Sprint 1 Documentation Update

Layer / File(s) Summary
Project Status & Badges
README.md
Header badge row updated; added "Smoke E2E" workflow badge and changed Status text to "pre-1.0, Sprint 1 closure".
Prerequisites & Dev Tooling
README.md
Prerequisites reorganized with "Dev tooling" and "Smoke / E2E" sections; includes pinned tauri-pilot-cli install instructions and consolidated OS-specific dependency notes.
Quickstart & Sprint 1 Scope
README.md
Quickstart rewritten to include scripts/install-hooks.sh, pilot-gated dev server verification, second-terminal tauri-pilot ipc tasks_list --args '{}' probe, references to scripts/smoke-e2e.sh and CI workflow, and an expanded "What works in Sprint 1" checklist (backend boot/persistence/migrations/IPC/event bus/tracing, frontend skeleton/store/i18n, codegen, CI smoke gates; larger features deferred).
Architecture Rule
README.md
Adds explicit hexagonal layering rule (no I/O in domain/), notes architecture test enforcing forbidden imports on CI, and points to application/di.rs for composition root.
License Link
README.md
License link replaced to point directly to the AGPL-3.0 URL instead of local LICENSE file.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related issues

Possibly related PRs

  • mpiton/forgent#16: Prior README updates for badges and prerequisites; this PR advances those docs toward Sprint 1 closure.

Poem

🐰 I hopped through lines to set things right,

Badges gleam and Quickstart's bright,
Hooks in place, a probe to run,
Sprint One's smoke gate shows green sun,
The README sings — Sprint One is done!

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'docs(readme): T-135 Sprint 1 quickstart + smoke probe (closes #49)' directly summarizes the main changes: README documentation updates for Sprint 1 completion, including quickstart and smoke E2E probe instructions.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/t135-readme-quickstart

Comment @coderabbitai help to get the list of available commands and usage tips.

@qodo-code-review
Copy link
Copy Markdown

Review Summary by Qodo

Document Sprint 1 quickstart, smoke E2E flow, and deliverables

📝 Documentation

Grey Divider

Walkthroughs

Description
• Add Sprint 1 quickstart section with 5-minute fresh clone boot flow
• Document smoke E2E verification steps using tauri-pilot ipc tasks_list
• Enumerate Sprint 1 deliverables (hexagonal layout, libsql, IPC, event bus, tracing, frontend
  skeleton, codegen, quality gates)
• Add Smoke E2E badge and update status line to reflect Sprint 1 closure
• Pin tauri-pilot-cli to v0.5.1 and fix broken AGPL license link
Diagram
flowchart LR
  A["README.md"] -->|Add Quickstart| B["Fresh Clone Boot"]
  A -->|Add Smoke Flow| C["IPC Verification"]
  A -->|Document Sprint 1| D["Deliverables List"]
  A -->|Update Status| E["Sprint 1 Closure"]
  A -->|Add Badge| F["Smoke E2E CI"]
  A -->|Fix Links| G["License + ARCHI"]
Loading

Grey Divider

File Changes

1. README.md 📝 Documentation +42/-6

Sprint 1 quickstart, smoke flow, and deliverables documentation

• Replace generic "Setup" with "Quickstart" section targeting < 5 min fresh clone boot (clone →
 install-hooks.sh → pnpm exec tauri dev)
• Add "Verify the Sprint 1 smoke flow" subsection with pilot-gated dev server and `tauri-pilot ipc
 tasks_list --args '{}'` probe instructions
• Add "What works in Sprint 1" section enumerating 8 key deliverables (hexagonal layout, libsql
 V001, tasks_list IPC, EventPublisher, tracing redaction, frontend skeleton, codegen-types, quality
 gates)
• Add Smoke E2E badge alongside CI/Release/CodSpeed badges
• Update Status line from "Sprint 0 closure" to "Sprint 1 closure — smoke E2E gate green on main"
• Pin tauri-pilot-cli install to =0.5.1 --locked matching src-tauri/Cargo.toml dependency
• Add explicit architecture link to ARCHI.md §4 — Layout du repo with GFM anchor
• Replace broken [AGPL-3.0](LICENSE) link with canonical https://www.gnu.org/licenses/agpl-3.0
 URL

README.md


Grey Divider

Qodo Logo

@qodo-code-review
Copy link
Copy Markdown

qodo-code-review Bot commented May 11, 2026

Code Review by Qodo

🐞 Bugs (0) 📘 Rule violations (0) 📎 Requirement gaps (1)

Grey Divider


Action required

1. Broken ARCHI.md link ✓ Resolved 📎 Requirement gap ≡ Correctness
Description
README.md links to ARCHI.md#4-layout-du-repo (including an architecture section reference), but
ARCHI.md is not present in the repository, so the new architecture reference is a dead/broken link
that link-check tooling will flag. This violates the requirement that documentation updates
introduce no broken Markdown links and undermines onboarding in a docs PR.
Code

README.md[89]

+Full design rationale (dependency rule, bounded contexts, composition root, why-not-CQRS): see [`ARCHI.md` §4 — Layout du repo](ARCHI.md#4-layout-du-repo).
Evidence
PR Compliance ID 3 requires that documentation changes introduce no broken Markdown links (e.g.,
markdown-link-check must report no broken links). The README introduces an explicit markdown link
targeting ARCHI.md#4-layout-du-repo, but because the repository does not contain an ARCHI.md
file, the target cannot resolve for readers or tooling, making the link dead.

T-135: No broken markdown links (markdown-link-check)
README.md[89-89]
README.md[89-90]
README.md[38-38]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
`README.md` introduces a markdown link to `ARCHI.md#4-layout-du-repo` (and references an architecture section), but `ARCHI.md` is not present in the repository, resulting in a broken internal documentation link.
## Issue Context
This violates the documentation/compliance requirement that link-check tooling (e.g., `markdown-link-check`) reports no broken Markdown links. Because this is a docs PR, leaving broken internal references also undermines onboarding and was explicitly called out as something to avoid.
## Fix Focus Areas
- README.md[38-38]
- README.md[89-90]
## Suggested fix
- Either add/commit the intended `ARCHI.md` file (including the `## 4. Layout du repo` heading so the `#4-layout-du-repo` anchor exists), OR
- Update the README to link to an existing architecture/design document in the repo, OR
- Remove the reference until the file is introduced in a follow-up PR.

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


2. Wrong CI trigger claim ✓ Resolved 🐞 Bug ≡ Correctness
Description
README says the smoke E2E gate runs in CI “on every push”, but the smoke-e2e.yml workflow is
workflow_dispatch only; this misrepresents the project’s actual CI gating.
Code

README.md[61]

+The probe returns the empty task list seeded by migration `V001`. The full one-shot acceptance gate (boot + log markers + DB freshness + IPC) lives in [`scripts/smoke-e2e.sh`](scripts/smoke-e2e.sh) and runs in CI on every push (see [`Smoke E2E`](https://github.com/mpiton/forgent/actions/workflows/smoke-e2e.yml) badge above).
Evidence
The README claims per-push CI execution, but the workflow configuration shows it only runs when
manually triggered via workflow_dispatch.

README.md[61-61]
.github/workflows/smoke-e2e.yml[10-17]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
The README states the smoke E2E runs in CI on every push, but `.github/workflows/smoke-e2e.yml` is configured as `workflow_dispatch` only.
## Issue Context
This is a process/quality-gate correctness issue: readers will assume the smoke test is enforced automatically when it is not.
## Fix Focus Areas
- README.md[61-61]
- .github/workflows/smoke-e2e.yml[15-17]
## Suggested fix (pick one)
1) **Update README** to accurately say it runs via manual trigger (GitHub Actions → Smoke E2E → Run workflow) and/or in CI when explicitly invoked.
2) **Update workflow triggers** to match the README claim (e.g., add `push:` / `pull_request:`) if the intent is truly to gate every push/PR.

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools



Remediation recommended

3. Smoke-flow steps contradict 📎 Requirement gap ≡ Correctness
Description
The README’s smoke verification instructions are internally contradictory: they say “With the dev
app running” while also telling the reader to start a pilot-gated dev server “instead of `pnpm exec
tauri dev`”, creating confusion that can break fresh-clone quickstarts. This can lead to running the
app without the pilot feature (causing tauri-pilot IPC to fail) or to accidentally starting two
dev servers.
Code

README.md[R51-56]

+With the dev app running, exercise the IPC surface from a second terminal:
+
+```bash
+# pilot-gated dev server (separate terminal, instead of `pnpm exec tauri dev`)
+pnpm exec tauri dev --features pilot
+
Evidence
PR Compliance ID 1 requires that a fresh-clone quickstart be successfully followable, but the
README’s new smoke-flow section gives mutually conflicting guidance about whether the dev app is
already running and which tauri dev command to use. The Quickstart path runs pnpm exec tauri dev
without the pilot feature, while the smoke flow (and scripts/smoke-e2e.sh) indicates `--features
pilot is required for tauri-plugin-pilot/tauri-pilot` to connect via its socket; without that
feature enabled, IPC calls fail, showing the current documentation can lead users into an incorrect
run mode.

T-135: README quickstart works for a fresh clone
README.md[51-56]
README.md[40-45]
README.md[49-56]
scripts/smoke-e2e.sh[126-131]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
The README smoke verification flow is ambiguous/contradictory: it says the dev app is already running, but then instructs starting a pilot-gated dev server “instead of `pnpm exec tauri dev`”, which conflicts with the Quickstart. This needs to be rewritten into a single, unambiguous sequence that ensures the app is running with the pilot feature enabled when the `tauri-pilot` IPC probe is executed.
## Issue Context
PR Compliance ID 1 requires a fresh-clone quickstart that can be followed successfully without missing or incorrect instructions. As written, users may (a) follow Quickstart with `pnpm exec tauri dev` (no pilot feature) and then run the smoke probe, which fails because `tauri-pilot` cannot connect to the app socket/IPC endpoints without `--features pilot`, or (b) interpret “instead of `pnpm exec tauri dev`” as starting a second dev server while also being told “with the dev app running.” The smoke script (`scripts/smoke-e2e.sh`) explicitly describes why `--features pilot` is required for `tauri-plugin-pilot` to expose/connect to the socket.
## Fix Focus Areas
- README.md[40-45]
- README.md[49-56]
- README.md[51-56]
- scripts/smoke-e2e.sh[126-131]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


Grey Divider

Qodo Logo

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@README.md`:
- Around line 43-44: The Quickstart mentions running ./scripts/install-hooks.sh
and pnpm exec tauri dev but doesn’t guide Windows users; update the README entry
around those lines to add a short note telling Windows users to run the
install-hooks.sh step in Git Bash or WSL (or alternatively provide a one-line
PowerShell equivalent for running the script and invoking pnpm, e.g., how to run
the hook installer and pnpm command in PowerShell) so Windows onboarding is
explicit and non-blocking.
- Around line 51-56: Clarify the execution order by updating the comments around
the two commands so they explicitly label the terminals and avoid "instead of"
wording: change the comment before "pnpm exec tauri dev --features pilot" to
"terminal 1: pilot-gated dev server" (for the pilot app), and change the comment
before "tauri-pilot ipc tasks_list --args '{}'" to "terminal 2: probe the first
IPC command" so users know to run the dev server in one terminal and the IPC
probe in a second; adjust surrounding text to reflect that the app must be
running in terminal 1 before executing the tauri-pilot IPC command in terminal
2.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 3460df83-579f-4c2a-85eb-44b127770ad6

📥 Commits

Reviewing files that changed from the base of the PR and between aebd2e5 and 9773c83.

📒 Files selected for processing (1)
  • README.md

Comment thread README.md
Comment thread README.md Outdated
Copy link
Copy Markdown

@cubic-dev-ai cubic-dev-ai Bot left a comment

Choose a reason for hiding this comment

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

1 issue found across 1 file

Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name="README.md">

<violation number="1" location="README.md:89">
P2: This new internal link points to `ARCHI.md`, but that file does not exist in the repository, so readers hit a broken link.</violation>
</file>

Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review.

Comment thread README.md Outdated
Comment thread README.md Outdated
Comment thread README.md Outdated
@codspeed-hq
Copy link
Copy Markdown
Contributor

codspeed-hq Bot commented May 11, 2026

Merging this PR will not alter performance

✅ 7 untouched benchmarks


Comparing feat/t135-readme-quickstart (bc5c630) with main (aebd2e5)

Open in CodSpeed

- Windows shell note for `./scripts/install-hooks.sh` (run via Git Bash or WSL; PowerShell/cmd.exe will not execute the bash script). Per CodeRabbit comment on L44.
- Reword smoke verification block: explicit "terminal 1" / "terminal 2" labels, drop the ambiguous "instead of" phrasing. Apply CodeRabbit suggested diff on L56 verbatim.
- Correct CI trigger claim: `.github/workflows/smoke-e2e.yml` is `workflow_dispatch` only — README previously said "runs in CI on every push" which is wrong. Per qodo finding on L61.
- Drop links to `ARCHI.md` (`§23` onboarding ref + `§4` architecture link) and `PRD.md` (roadmap ref) because both files are intentionally gitignored at `.gitignore:55-56` ("Specs"). Cubic and qodo correctly flagged the broken internal links. The "Architecture" section now inlines the dependency rule + composition-root invariants that previously lived behind the ARCHI.md §4 link, so the design rationale is still surfaced without depending on a local-only spec file.

T-135 spec mentioned an `ARCHI.md §4` link as a sub-criterion, but that pre-dated the deliberate gitignore policy on the specs files. Honoring the gitignore wins — the AC "no broken markdown link" is the stronger constraint.
@mpiton mpiton merged commit 47538ba into main May 11, 2026
13 checks passed
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.

[T-135] README quickstart + CHANGELOG [Unreleased] Added entries (partial — CHANGELOG done, README pending)

1 participant