Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

7.0KB

Sprint Backlog

Sprint: 1 Dates: 2026-09-08 - 2026-09-11 Sprint Goal: Prove a thin text-only desktop-to-CLI rendering spine so an operator can select files, launch a job, watch progress, and receive a PDF generated through Debenu from a known XML template.

Committed Items

Story Size Status Tasks
Define the CLI render contract 3 points Done - [x] Define the MVP CLI arguments, stdout/stderr rules, and exit-code contract in repo docs.
- [x] Scaffold the CLI entrypoint and argument parsing for template, CSV, and output paths.
- [x] Validate missing or invalid required arguments for local and UNC path inputs.
- [x] Return documented success and failure exit codes with simple smoke examples.
Render text-only PDFs through Debenu Quick PDF 8 points Done - [x] Wire Debenu Quick PDF Library 10.13 into the CLI runtime path.
- [x] Parse the supported text-only XML template elements needed for page and text placement.
- [x] Load CSV rows and merge static plus dynamic text into the render model.
- [x] Generate PDF 1.4+ RGB output and write it to the requested output path.
- [x] Verify the render path with a representative sample template and CSV dataset.
Emit machine-readable progress during render 3 points Not Started - [ ] Define a simple line-oriented progress event format that the desktop app can parse.
- [ ] Emit startup, active-render, completion, and failure progress events without corrupting error output.
- [ ] Throttle active progress output to at least once per second and document examples.
Launch a text-only render from the desktop app 3 points Not Started - [ ] Scaffold the desktop shell with template, CSV, and output pickers plus a launch action.
- [ ] Validate required operator inputs before the render starts.
- [ ] Start the CLI process with the selected paths and surface clear launch failures.
Show render progress and completion summary 3 points Not Started - [ ] Parse the CLI progress stream in the desktop app without freezing the UI.
- [ ] Display active status updates whenever progress events arrive.
- [ ] Show success totals and failure outcomes, including elapsed time and warning count.

Notes

  • Capacity signal: first sprint with no historical velocity, so the team uses a conservative one-week forecast of about 32 task-hours for committed feature work and keeps roughly 10% of the week for refinement and ceremony.
  • Planning rationale: the team pulls a thin integration spine from the highest-priority ready stories and intentionally defers broader template-authoring and CSV-mapping stories to avoid overcommitting in the first one-week sprint.
  • Impediments: template asset path strategy (absolute vs relative) remains open; UNC timeout/retry behavior remains open.
  • Risk handling this sprint: keep Sprint 1 to known local-file and known-template scenarios unless the product owner resolves the open path and UNC questions mid-sprint.
  • Deferred ready stories: Configure canvas dimensions in operator-friendly units, Place and move text elements on the canvas, Save and reopen text-only XML templates, Load CSV headers and sample rows into the desktop app, and Create a dynamic text token from a CSV column.
  • Carried over from previous sprint: none.

Daily Scrum Log

Day Date Completed Planned Blocked/At risk
1 2026-09-08 N/A (sprint start) Swarm on “Define the CLI render contract” (all other stories depend on its arg/exit-code shape) Template path and UNC timeout impediments still open (see logs/impediment_log.md); not blocking today, will block Story 2 if still open when it starts
1 (end of day) 2026-09-08 “Define the CLI render contract” — all 4 tasks done, story meets DoD, marked Done. EnvelopeRenderer.Cli scaffolded with contract doc, arg parsing/validation, exit codes 0/1/2/3/4/64, 15 passing xUnit tests, manual smoke examples recorded in code/CLI_CONTRACT.md. Pull Batch 2, “Render text-only PDFs through Debenu Quick PDF” Template path and UNC timeout impediments still open — now directly relevant since Batch 2 is the story they were flagged against; logged one low-impact, self-resolving debt item (exit code 64 placeholder) in logs/technical_debt_log.md
1 (continued) 2026-09-08 “Render text-only PDFs through Debenu Quick PDF” — all 5 tasks done, story meets DoD, marked Done. Hit and resolved a real blocker mid-task: the vendored Debenu DLL fails every save (error 999) without a license key; found and verified a working key. Discovered via the vendor reference guide that SetPageSize has no US envelope sizes, so the template format uses exact pageWidth/pageHeight points via SetPageDimensions instead — also caught and fixed a real bug this surfaced (a fresh Debenu document already has page 1, so the original code would have produced a spurious blank leading page on every render). Verified end-to-end against the real 392-row sample CSV: exact %PDF-1.4, 392/392 pages, correct #10 envelope dimensions. Exit-code 64 placeholder removed (debt paid down); exit 1 now covers all template/CSV/render failures. Pull Batch 3, “Emit machine-readable progress during render” Template path and UNC timeout impediments still open, unchanged by this batch. Debenu license key requirement now documented in code/CLI_CONTRACT.md; logged as a resolved impediment in logs/impediment_log.md.

Execution Order

Sequenced by dependency, not by story-list order (which happens to match here since the sprint goal is the walking skeleton). Swarm each batch as a unit before pulling the next — don't spread across batches with a small team. Batch 4 is the one exception called out below.

Batch Story Why it's gated here
1 Define the CLI render contract Nothing else can safely start — arg names, exit codes, and stdout/stderr rules are the interface every other story codes against.
2 Render text-only PDFs through Debenu Quick PDF Needs Batch 1's entrypoint/arg parsing to exist to wire the render path into. Highest points (8) and highest technical risk (Debenu interop, XML parsing, CSV merge) — largest single swarm target.
3 Emit machine-readable progress during render Needs Batch 2's render loop in place to emit real startup/active/completion/failure events against, not stubs.
4 Launch a text-only render from the desktop app Only hard dependency is Batch 1's contract (needs real arg names/paths to launch against). Scaffolding the shell and input pickers can start as soon as Batch 1 is done, in parallel with Batches 2-3 if the team has more than one contributor to swarm with; otherwise take it sequentially after Batch 3 to avoid splitting focus.
5 Show render progress and completion summary Needs both Batch 3 (event format to parse) and Batch 4 (a running process to parse events from) — last in the chain regardless of team size.

Today's pull: Batch 1 only, per the daily scrum above.

Powered by TurnKey Linux.