=== BEGIN ARTIFACT ANALYSIS.md ===
# Blueprint Analysis: ReadingList
## Commander Expectations
- assert readers can maintain an ordered list of books to read through a web application
- assert empty titles and authors are rejected with clear reasons
- assert the complete automated test suite is runnable through `sh bin/test.sh`
## Crew
| Crew | Charge |
|---|---|
| Commander | Defines intent and decides what done means. |
| Team Lead | Confirms epic completeness and stakeholder expectations. |
| Planning Crew | Authors atomic specifications and the ordered Manifest. |
| Shipyard Crew | Builds the tickets without synchronous Commander access. |
## Story List
### Feature: Book List Management
| ID | Story | High-level AC |
|---|---|---|
| BOOKS-001 | Add a book with title and author | A submitted title and author are stored and shown in the list. |
| BOOKS-002 | View books in order added | The list displays books in the same order in which they were added, including an understandable empty-list state. |
| BOOKS-003 | Remove a book | Removing a book causes it to be omitted on the next list read. |
| BOOKS-004 | Reject incomplete book submissions | Empty titles or authors are rejected and the reason is clearly reported. |
### Feature: Application Verification
| ID | Story | High-level AC |
|---|---|---|
| VERIFY-001 | Run the complete automated test suite | `sh bin/test.sh` runs from the application root and exits zero only when every automated test passes. |
| VERIFY-002 | Cover all book-list behaviors with automated tests | Automated tests cover adding, ordered listing, removal, and rejection of empty title or author. |
## Surfaced Acceptance Criteria
| ID | Story ID | Criterion |
|---|---|---|
| AC-001 | BOOKS-001 | The primary web entry point provides a first-time reader with a direct path to submit a title and author. |
| AC-002 | BOOKS-002 | When no books exist, the application presents a clear empty-list state. |
| AC-003 | BOOKS-004 | Submission errors identify that the title or author is required. |
| AC-004 | BOOKS-002 | Interactive list operations provide a usable response while the request is in progress and a clear error state if the operation fails. |
## Relationship Model
| Source or group | Relationship type | Related source or group | Evidence | Delivery implication |
|---|---|---|---|---|
| `sources/reading-list.md` | instruction-to-test | `BOOKS-001` through `BOOKS-004` | The source defines add, ordered viewing, removal, and validation behaviors. | Implementation stories must preserve these user-visible behaviors. |
| `sources/reading-list.md` | instruction-to-test | `VERIFY-002` | The source explicitly requires automated tests for each behavior. | Tests must cover every listed book-list behavior. |
| `sources/reading-list.md` | instruction-to-test | `VERIFY-001` | The source requires a POSIX-compatible `bin/test.sh` and complete-suite execution. | The terminal verification story must provide and run the project test command. |
## Source Roles
| Path | Role | Plan disposition | Build disposition |
|---|---|---|---|
| `sources/reading-list.md` | author intent | compass | prompt-only |
## Planning Instructions
### Delivery Shape
A small web application accepts book title and author input, stores books, renders them in insertion order, and supports removal. The application includes automated behavior tests and a root-level POSIX test launcher. The primary flow is submit, view the ordered list, and remove an item.
### Story Realization Map
| Story ID | Blueprint scope | Evidence | Related files | Delivery kind |
|---|---|---|---|---|
| BOOKS-001 | Book creation flow and persistence | `sources/reading-list.md` | Web entry point, book model/store, add-book tests | capability, persistence, test |
| BOOKS-002 | Ordered list rendering and empty state | `sources/reading-list.md` | List view, ordered query/read path, list tests | capability, test |
| BOOKS-003 | Book removal flow | `sources/reading-list.md` | Remove route/action, persistence deletion, removal tests | capability, test |
| BOOKS-004 | Input validation and error presentation | `sources/reading-list.md` | Validation boundary, form error display, rejection tests | capability, test |
| VERIFY-001 | Complete test launcher | `sources/reading-list.md` | `bin/test.sh`, test-runner configuration | acceptance contract, build gate |
| VERIFY-002 | Behavior test coverage | `sources/reading-list.md` | Automated test modules for all book behaviors | test harness |
### Test and Acceptance Strategy
Each book-management story owns focused tests for its behavior. `VERIFY-002` confirms coverage across adding, ordered listing, removal, and invalid submissions. `VERIFY-001` is the terminal verification story and runs the complete suite through `sh bin/test.sh`; its acceptance assertion uses `Suite: full`. The complete-suite requirement is a proof gate, not a numeric release threshold.
### Sequencing and Dependencies
Establish the application foundation and persistence boundary before the book-management stories. Implement creation and ordered reads before removal and validation refinements. Keep focused story tests scoped to the owning behavior. Implement the test launcher and complete-suite verification after the behavior tests are available.
### Source Conflicts and Gaps
No conflicting source definitions were found. The source does not name a framework, language, persistence engine, or deployment target; conventional implementation choices are proposed in `TECHNOLOGY_STACK.md`. No external service, authentication model, or sensitive-data requirement is stated.
## Analysis Notes
generated: 2026-08-15
blueprint: /mnt/c/Users/barlo/projects/drydock/uat/ReadingList/runs/20260815.171255/workspace/targets/ReadingList/blueprint
Quality: Questions
blockers: 0
questions: 1
features: 2
stories: 6
stack: proposed Python, Flask, SQLite, pytest, POSIX sh
display_name: ReadingList
short_description: A web application for maintaining an ordered list of books to read.
None.
=== END ARTIFACT ===
=== BEGIN ARTIFACT SEA_TRIALS.md ===
# Sea Trials: ReadingList
## st-001: Test suite passes
Type: technical
Required: yes
Criterion: The application shall provide a POSIX-compatible `bin/test.sh` that exits zero when every automated test passes.
Verification: proof
Pattern: ubiquitous
## st-002: A book can be added
Type: behavioral
Required: yes
Criterion: When a reader submits a title and an author, the application shall store the book and show it in the list.
Verification: proof
Pattern: event
## st-003: Books appear in the order added
Type: behavioral
Required: yes
Criterion: The application shall present books in the order they were added.
Verification: proof
Pattern: ubiquitous
## st-004: A book can be removed
Type: behavioral
Required: yes
Criterion: When a reader removes a book, the application shall omit it from the list on the next read.
Verification: proof
Pattern: event
## st-005: Empty fields are rejected
Type: behavioral
Required: yes
Criterion: If a submission carries an empty title or an empty author, then the application shall reject it and report the reason.
Verification: proof
Pattern: unwanted
## st-006: Every behavior is covered by a test
Type: technical
Required: yes
Criterion: The application shall carry automated tests for adding a book, listing books in the order added, removing a book, rejecting an empty title or author.
Verification: proof
Pattern: ubiquitous
## Questions
- None.
=== END ARTIFACT ===
=== BEGIN ARTIFACT TECHNOLOGY_STACK.md ===
# Technology Stack
| Technology | Rigging | Notes |
|---|---|---|
| Python | `python.md` | Proposed conventional application language; the source does not specify a language. |
| Flask | `flask.md` | Proposed lightweight web framework for the described web application. |
| SQLite | `sqlite.md` | Proposed local persistence for the stored reading list. |
| pytest | `python.md` | Proposed automated test runner for the required behavior suite. |
| POSIX shell | `common.md` | Required by the source for the compatible `bin/test.sh` launcher. |
=== END ARTIFACT ===
=== BEGIN ARTIFACT COMPASS.md ===
# COMPASS: ReadingList
## Compass
ReadingList is a small web application for readers who want to maintain a personal, ordered list of books to read. A reader can add a book with its title and author, review books in insertion order, and remove books when they are no longer needed.
## Constraints
- The application must run as a web application.
- Book submissions require both a title and an author.
- Books must be shown in the order they were added.
- `bin/test.sh` must be POSIX-compatible and run from the application root.
- The complete automated test suite must pass for `bin/test.sh` to exit zero.
## Guardrails
- Never accept or store a submission with an empty title or author.
- Never reorder books relative to their addition order.
- Never report the test command as successful when any automated test fails.
- Always provide a clear reason when rejecting incomplete input.
=== END ARTIFACT ===
=== BEGIN ARTIFACT discovery-identity.json ===
{
"id": "discovery-identity",
"title": "Discovery: Project Identity",
"purpose": "Confirm the proposed display name and short description before planning.",
"questions": [
{
"id": "display_name",
"label": "Display Name",
"prompt": "The display name Drydock will use for this project. Edit to override the proposal.",
"input": "text",
"proposed": "ReadingList",
"answer": "ReadingList"
},
{
"id": "short_description",
"label": "Short Description",
"prompt": "One-sentence description of what this project does. Edit to override the proposal.",
"input": "textarea",
"proposed": "A web application for maintaining an ordered list of books to read.",
"answer": "A web application for maintaining an ordered list of books to read."
}
]
}
=== END ARTIFACT ===Run artifact