From 96a9a78f010ce8ae3fce8d84602317d8b5808a13 Mon Sep 17 00:00:00 2001 From: Jens Tirsvad Nielsen Date: Wed, 28 Oct 2026 16:23:24 +0800 Subject: [PATCH 1/2] Add baseline: Business Case, Stakeholder Analysis, Project Plan, milestones and reviews Autonomous mode. BC-001, SA-001, PP-001 and MIL-001 to MIL-005 reviewed (RC-001 to RC-008, Go, stand-in for S01; language criteria confirmed by S01). Adds the traceability matrix and the registry rows. --- .gitmodules | 3 + docs/artifact-registry.md | 61 ++++++++ docs/business-case.md | 138 ++++++++++++++++++ docs/milestones/mil-001-project-setup.md | 72 +++++++++ .../mil-002-bot-core-open-and-click.md | 70 +++++++++ .../mil-003-upgrades-and-five-minute-run.md | 71 +++++++++ .../mil-004-screenshots-and-readme.md | 71 +++++++++ docs/milestones/mil-005-wiki-and-release.md | 71 +++++++++ docs/project-plan.md | 114 +++++++++++++++ docs/sqa/reviews/rc-001-business-case.md | 67 +++++++++ .../reviews/rc-002-stakeholder-analysis.md | 68 +++++++++ docs/sqa/reviews/rc-003-project-plan.md | 74 ++++++++++ .../reviews/rc-004-mil-001-project-setup.md | 65 +++++++++ .../rc-005-mil-002-bot-core-open-and-click.md | 65 +++++++++ ...06-mil-003-upgrades-and-five-minute-run.md | 65 +++++++++ .../rc-007-mil-004-screenshots-and-readme.md | 65 +++++++++ .../rc-008-mil-005-wiki-and-release.md | 65 +++++++++ docs/sqa/traceability-matrix.md | 70 +++++++++ docs/stakeholder-analysis.md | 78 ++++++++++ framework | 1 + 20 files changed, 1354 insertions(+) create mode 100644 .gitmodules create mode 100644 docs/artifact-registry.md create mode 100644 docs/business-case.md create mode 100644 docs/milestones/mil-001-project-setup.md create mode 100644 docs/milestones/mil-002-bot-core-open-and-click.md create mode 100644 docs/milestones/mil-003-upgrades-and-five-minute-run.md create mode 100644 docs/milestones/mil-004-screenshots-and-readme.md create mode 100644 docs/milestones/mil-005-wiki-and-release.md create mode 100644 docs/project-plan.md create mode 100644 docs/sqa/reviews/rc-001-business-case.md create mode 100644 docs/sqa/reviews/rc-002-stakeholder-analysis.md create mode 100644 docs/sqa/reviews/rc-003-project-plan.md create mode 100644 docs/sqa/reviews/rc-004-mil-001-project-setup.md create mode 100644 docs/sqa/reviews/rc-005-mil-002-bot-core-open-and-click.md create mode 100644 docs/sqa/reviews/rc-006-mil-003-upgrades-and-five-minute-run.md create mode 100644 docs/sqa/reviews/rc-007-mil-004-screenshots-and-readme.md create mode 100644 docs/sqa/reviews/rc-008-mil-005-wiki-and-release.md create mode 100644 docs/sqa/traceability-matrix.md create mode 100644 docs/stakeholder-analysis.md create mode 160000 framework diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..a759dc9 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "framework"] + path = framework + url = ssh://git@git.tirsystem.com:10022/TirSystem/SQA-QC-Framework.git diff --git a/docs/artifact-registry.md b/docs/artifact-registry.md new file mode 100644 index 0000000..5fcec41 --- /dev/null +++ b/docs/artifact-registry.md @@ -0,0 +1,61 @@ +# Artifact Registry + +This project's artifact state. Types, short names and `CrossReference +Candidates` come from the framework catalog +(`framework/registry/artifact-catalog.md`); this file only records where +each document lives in *this* project and the next version to use. + +Delete rows for types you don't use. Add a row the first time you create a +document of a type. `Primary File` may contain a glob (e.g. +`docs/use-cases/uc-*/uc.md`); `framework/scripts/find-crossreferences.sh` reads it. + +| Short Name | Artifact Type | Primary File | Next Available Version | +| --- | --- | --- | --- | +| BC | Business Case | docs/business-case.md | 002 | +| SA | Stakeholder Analysis | docs/stakeholder-analysis.md | 002 | +| PP | Project Plan | docs/project-plan.md | 002 | +| MIL | Milestone / Gateway | docs/milestones/mil-*.md | 006 | +| ADR | Architecture Decision Record | docs/adr/adr-*.md | 0001 | +| TM | Traceability Matrix | docs/sqa/traceability-matrix.md | 002 | +| RC | SQA Review Record | docs/sqa/reviews/rc-*.md | 009 | + +## Languages + +Set the PO language when the project starts; `project-planning` asks for it +if it is missing. An artifact of a type marked "Written in the PO language" +exists once, in that language, under its normal name (`business-case.md`); the +`artifact` skill ("One file per artifact") has the rule. + +| Setting | Value | +| --- | --- | +| PO language | en | +| PO domain | it | +| High-level register | IT Executive English | +| Technical register | IT Professional English | +| Wiki languages | en, da, ms (`framework/process/wiki.md`) | + +Every artifact of a type marked "Yes" below states its language and domain in +its `Language` and `Domain` Metadata rows; `new-artifact.sh` fills them from +`PO language` and `PO domain`. `Language` is a BCP 47 code (`da`, `en`). +`Domain` is a value from this list; add a row to introduce a domain, so a +reviewer can see at once which professional vocabulary a document uses. + +| Domain | Meaning | +| --- | --- | +| it | Software and IT | +| medical | Healthcare and medical devices | +| construction | Construction and civil engineering | + +| Artifact types | Register | Written in the PO language | +| --- | --- | --- | +| BC, KPI, PP, MIL | IT Executive English | Yes | +| SA, BMC, BPMN, UCD, US, UC, SSD, DM, RA, GOV, DICT | IT Professional English | Yes | +| OC, SD, DCD, ERD, TP, AD, ADR, TM, RC, QC, source code | IT Professional English | No | + +## Notes + +- "Next Available Version" is the zero-padded (3-digit) version to use the + *next* time a new document of that type is created. Increment it only when + a brand-new document is created, not when an existing document's + `## Version History` gets a row. +- `ADR` uses 4 digits (`0001`); `RC` is sequential across all artifact types. diff --git a/docs/business-case.md b/docs/business-case.md new file mode 100644 index 0000000..5bd8e39 --- /dev/null +++ b/docs/business-case.md @@ -0,0 +1,138 @@ +# Cookie Clicker Bot + +## Metadata +| Key | Value | +| --- | --- | +| ID | BC-001 | +| CrossReference | [SA-001] | +| Language | en | +| Domain | it | + +## Version History +| Date | Status | Author | Reviewer | Change | Commit | +| --- | --- | --- | --- | --- | --- | +| 2026-10-28 | Accepted | Jens Tirsvad Nielsen | AI as stand-in for S01 | Initial version (reviewed in RC-001) | pending | + +--- + +## Executive Summary + +Udemy's *100 Days of Code* final project of day 48 asks the participant to build a Python bot that plays the browser game Cookie Clicker with Selenium: it clicks the big cookie and buys upgrades by itself, and after five minutes reports the cookies-per-second (CPS) rate it reached. This project delivers that bot as a readable, runnable and tested repository that other course participants (S02) can compare against and GitHub visitors (S03) can browse, with a README and a three-language wiki (English, Danish, Bahasa Malaysia) that show every lecture step with a screenshot and explain what it taught. + +## Methodological and Standards Foundation + +The artifacts follow the SQA and QC framework mounted at `framework/` (plan first, review every artifact against its QC checklist). Quality attributes are named with ISO/IEC 25010:2023 characteristics. The code follows the framework's Python conventions and Clean Architecture (business rules free of Selenium), is tested with pytest and documented with Doxygen comments. Graphical user interface (GUI) runs are done headless in a Docker container, never on the host desktop (`framework/process/gui-testing.md`). + +## Problem Statement + +- The assignment is described in a lecture video only; there is no runnable reference a participant can compare with. +- A bot written as one script of module-level code with threads (the author's earlier solution targeted the old Orteil experiment page and needed an extra threading package) is hard to read, cannot be tested without a browser and does not work against the current Cookie Clicker at ozh.github.io. +- Without screenshots and an explanation per lecture step, a visitor sees code but not what each step achieves or what was learned. + +## Business Opportunity + +A small, well-structured reference solution makes the author's learning visible, lets other participants compare strategies (the lecture invites competition on CPS), and gives GitHub visitors a clean example of a Selenium automation project with tests, documentation and a multilingual wiki. + +## Objectives + +1. O1: A bot plays Cookie Clicker at https://ozh.github.io/cookieclicker/ for five minutes by clicking the big cookie and buying upgrades, then prints the CPS reached. +2. O2: The code uses the assignment's function names, constants live in `constants.py`, and every source file has Doxygen comments with a `Doxyfile` provided. +3. O3: Decision logic is covered by pytest tests that need no browser; the only runtime dependency is Selenium. +4. O4: A README and a wiki in English, Danish and Bahasa Malaysia show one screenshot per lecture step and explain what each step taught. +5. O5: The repository has a description and topics on the git host, a Python `.gitignore`, a `pyproject.toml` (Python 3.13 or newer) and instructions for creating and using a local `.venv`. + +## Scope + +### In Scope + +- The bot for the lecture steps: open the game, choose the language, click the cookie, read the cookie count, buy affordable upgrades, run for five minutes, report CPS. +- Project configuration: `pyproject.toml`, `.gitignore`, `.venv` instructions, `Doxyfile`, `constants.py`. +- pytest tests for the logic with a fake game. +- A headless Docker run that produces one screenshot per lecture step. +- README (framework template) and wiki pages in en, da and ms. +- Description and topics on the git host repository. + +### Out of Scope + +- Cheating features of the game (console commands, save editing). +- Browsers other than Chrome, and the old Orteil experiment page. +- A graphical front end or packaging to PyPI. +- Contests or a leaderboard. + +## Expected Benefits + +### Tangible Benefits + +- A runnable bot, a test suite and generated API documentation. +- Screenshots per lecture step, in the README and in three wiki languages. + +### Intangible Benefits + +- A learning record of Selenium, game-loop strategy and clean structure. +- A portfolio piece for GitHub visitors. + +## Strategic Alignment + +The project supports the author's goal of completing the 100 Days of Code bootcamp with work that is reviewable and shareable, and exercises the SQA and QC framework on a small project. + +## Success Criteria + +| # | Criterion | Target | Measure | +| --- | --- | --- | --- | +| 1 | Bot run length | 300 seconds | Run log shows start and end times | +| 2 | CPS reported | A CPS value is printed at the end of the run | Console output of the headless run | +| 3 | Tests | All pytest tests pass, no browser needed | `python -m pytest` exit code 0 | +| 4 | Runtime dependencies | Exactly one: `selenium` | `dependencies` list in `pyproject.toml` | +| 5 | Lecture step screenshots | One per lecture step, in README and each wiki language | Files under `docs/images/` referenced by all pages | +| 6 | Wiki languages | Same page set in en, da and ms | `check-languages.sh` and the file listing | +| 7 | Repository metadata | Description and at least five topics set | Git host API response | + +## Risks + +| Risk | Impact | Mitigation | +| --- | --- | --- | +| The game's page structure changes | Bot stops finding elements | Element ids live in `constants.py`; explicit waits with timeouts; note the game version tested | +| The game is unreachable from the container | No run, no screenshots | Stop and report; unit tests stay independent of the network | +| Docker or headless Chrome is unavailable | GUI run cannot be done | Stop and report per the GUI testing rule; never fall back to the host desktop | +| Selenium is a heavy dependency against S03's wish for none | Conflict between stakeholder concerns | Keep it the single runtime dependency, justified in the architecture decision record ADR-0001 | +| A token leaks into the repository | Secret exposure | `.env` stays untracked and ignored; tokens are read by scripts only and never printed | + +## Assumptions + +- S01 is Product Owner and reviewer; S02 and S03 cannot be interviewed, so their needs are taken from the assignment brief. +- The PO language is English and the domain is IT. +- The game at https://ozh.github.io/cookieclicker/ stays available during the project. +- Docker with a Chrome image is available on the author's machine. +- The stage is a prototype-sized learning project with no budget. + +## Constraints + +- Python 3.13 or newer, `venv`, pytest, `pyproject.toml`, constants in `constants.py`. +- Folder structure `src/`, `tests/`, `docs/`. +- Doxygen comments and a `Doxyfile`. +- Avoid runtime dependencies unless needed. +- Tokens come from `.env`, which is for personal use only: it is not imported by the project, not tested and not committed. +- Duration: one week, 2026-10-28 to 2026-11-04. Budget: none. +- One branch and one pull request per milestone. + +## Cost–Benefit Assessment + +| Costs | Benefits | +| --- | --- | +| About 20 hours of the author's and the AI's time, no money (qualitative assessment, justified: a learning project with no revenue and no budget) | A reviewed reference solution, a learning record and a shareable repository | + +## Stakeholders + +| ID | Role in this project | Reference | +| --- | --- | --- | +| S01 | Course participant, Product Owner, developer and reviewer | [SA-001] | +| S02 | Udemy coursists who compare solutions | [SA-001] | +| S03 | GitHub viewers browsing for ideas | [SA-001] | + +## Recommendation + +Proceed. + +--- + +[SA-001]: ./stakeholder-analysis.md diff --git a/docs/milestones/mil-001-project-setup.md b/docs/milestones/mil-001-project-setup.md new file mode 100644 index 0000000..542e4b4 --- /dev/null +++ b/docs/milestones/mil-001-project-setup.md @@ -0,0 +1,72 @@ +# Project setup and tooling + +## Metadata +| Key | Value | +| --- | --- | +| ID | MIL-001 | +| CrossReference | [BC-001] | +| Language | en | +| Domain | it | + +## Version History +| Date | Status | Author | Reviewer | Change | Commit | +| --- | --- | --- | --- | --- | --- | +| 2026-10-28 | Accepted | Jens Tirsvad Nielsen | AI as stand-in for S01 | Initial version (reviewed in RC-004) | pending | + +--- + +## Purpose + +Decide whether the repository is ready to receive code: configuration, tooling, ignore rules, API documentation setup and repository metadata exist and are reviewed. + +## Deliverable + +`pyproject.toml` (Python 3.13 or newer, one runtime dependency `selenium`, pytest as a dev dependency), the `src/cookie_clicker_bot/` and `tests/` skeleton with `constants.py`, a Python `.gitignore` that also ignores `.env`, a `Doxyfile`, architecture decision record architecture decision record architecture decision record ADR-0001 and the description and topics on the git host repository. + +## Go / No-Go Criteria + +| # | Criterion (objectively checkable) | Go | No-Go | +| --- | --- | --- | --- | +| 1 | `pip install -e .[dev]` succeeds in a fresh `.venv` and `python -m pytest` runs (no tests collected is allowed) | Met | Not met | +| 2 | `pyproject.toml` requires Python 3.13 or newer and lists `selenium` as the only runtime dependency | Met | Not met | +| 3 | `.env` is listed in `.gitignore` and is not tracked by git | Met | Not met | +| 4 | `doxygen Doxyfile` runs without errors on the skeleton | Met | Not met | +| 5 | The git host repository shows a description and at least five topics | Met | Not met | + +## Dependencies + +| Depends on | Reason | +| --- | --- | +| None | First milestone | + +## Traceability + +| Business Case objective / KPI / user story | Reference | +| --- | --- | +O2, O3, O5 in [BC-001] + +## Ownership + +| Role | Stakeholder ID (SA) | +| --- | --- | +| Owner | S01 | +| Approving reviewer | S01 | + +## Target Date + +2026-10-29 - within the one-week limit of [BC-001] + +## Tasks + +| # | Task | Summary | Needs its own Use Case/User Story? | Reference | +| --- | --- | --- | --- | --- | +| 1 | Write ADR-0001 for the Selenium dependency | Record the decision to keep Selenium as the single runtime dependency, against stakeholder S03's wish for none, and the alternatives (no dependency, Playwright). | No | | +| 2 | Create pyproject.toml and the package skeleton | Python 3.13 or newer, `selenium` as runtime dependency, pytest as dev dependency, a `src/cookie_clicker_bot/` package and `tests/` folder, and a `constants.py` for the game URL, element ids and timings. | No | | +| 3 | Add Python .gitignore | Standard Python ignore rules plus `.env`, `.venv/`, Doxygen output and screenshots working folders, so no token is ever tracked. | No | | +| 4 | Add Doxyfile | Generate API documentation from the Doxygen comments in `src/` into `docs/api/`; document the command in the README later. | No | | +| 5 | Install git hooks and the plan gate | Run `framework/scripts/install-git-hooks.sh --enable-plan-gate` so a commit under `src/` or `tests/` needs a `Task: MIL-NNN#N` trailer. | No | | +| 6 | Set repository description and topics | Use the git host API with the token read from `.env` (never printed, never imported by the project) to set a description and topics such as python, selenium, cookie-clicker, automation, udemy, 100-days-of-code. | No | | + +--- + +[BC-001]: ../business-case.md diff --git a/docs/milestones/mil-002-bot-core-open-and-click.md b/docs/milestones/mil-002-bot-core-open-and-click.md new file mode 100644 index 0000000..969f12f --- /dev/null +++ b/docs/milestones/mil-002-bot-core-open-and-click.md @@ -0,0 +1,70 @@ +# Bot core: open the game and click the cookie + +## Metadata +| Key | Value | +| --- | --- | +| ID | MIL-002 | +| CrossReference | [BC-001] | +| Language | en | +| Domain | it | + +## Version History +| Date | Status | Author | Reviewer | Change | Commit | +| --- | --- | --- | --- | --- | --- | +| 2026-10-28 | Accepted | Jens Tirsvad Nielsen | AI as stand-in for S01 | Initial version (reviewed in RC-005) | pending | + +--- + +## Purpose + +Decide whether the bot can start the game, choose the language, click the big cookie and read the cookie count (lecture steps 1 to 3) with the logic tested without a browser. + +## Deliverable + +A `GamePort` interface, a Selenium adapter and the functions `open_game`, `select_language`, `click_cookie` and `get_cookie_count`, with Doxygen comments and pytest tests that use a fake game. + +## Go / No-Go Criteria + +| # | Criterion (objectively checkable) | Go | No-Go | +| --- | --- | --- | --- | +| 1 | `python -m pytest` passes with tests for the click and count logic using a fake game | Met | Not met | +| 2 | All element ids, the URL and timings are defined in `constants.py` and nowhere else | Met | Not met | +| 3 | Every public function has a Doxygen comment | Met | Not met | +| 4 | Source follows `qc-programming-python` and the review record says Go | Met | Not met | + +## Dependencies + +| Depends on | Reason | +| --- | --- | +| MIL-001 | Needs the skeleton, configuration and plan gate | + +## Traceability + +| Business Case objective / KPI / user story | Reference | +| --- | --- | +O1, O2, O3 in [BC-001] + +## Ownership + +| Role | Stakeholder ID (SA) | +| --- | --- | +| Owner | S01 | +| Approving reviewer | S01 | + +## Target Date + +2026-10-30 - within the one-week limit of [BC-001] + +## Tasks + +| # | Task | Summary | Needs its own Use Case/User Story? | Reference | +| --- | --- | --- | --- | --- | +| 1 | Define the game port and constants | Create `constants.py` (URL, language selector, big cookie id, cookie counter id) and a `GamePort` protocol so the rules do not import Selenium. | No | | +| 2 | Implement open_game and select_language | Open https://ozh.github.io/cookieclicker/ with Selenium, wait for the language chooser and pick English, so every later step starts from a playable game. | No | | +| 3 | Implement click_cookie | Click the big cookie a given number of times through the port; this is lecture step 2 and the base of the cookies-per-second (CPS) race. | No | | +| 4 | Implement get_cookie_count | Read and parse the cookie counter text into an integer, handling thousands separators and the word forms the game prints. | No | | +| 5 | Unit tests with a fake game | Test the functions above with a `FakeGame` in `tests/`, so they run in the venv without any browser. | No | | + +--- + +[BC-001]: ../business-case.md diff --git a/docs/milestones/mil-003-upgrades-and-five-minute-run.md b/docs/milestones/mil-003-upgrades-and-five-minute-run.md new file mode 100644 index 0000000..e3072ec --- /dev/null +++ b/docs/milestones/mil-003-upgrades-and-five-minute-run.md @@ -0,0 +1,71 @@ +# Upgrades and the five-minute run + +## Metadata +| Key | Value | +| --- | --- | +| ID | MIL-003 | +| CrossReference | [BC-001] | +| Language | en | +| Domain | it | + +## Version History +| Date | Status | Author | Reviewer | Change | Commit | +| --- | --- | --- | --- | --- | --- | +| 2026-10-28 | Accepted | Jens Tirsvad Nielsen | AI as stand-in for S01 | Initial version (reviewed in RC-006) | pending | + +--- + +## Purpose + +Decide whether the bot buys upgrades by strategy, runs for five minutes and reports its cookies-per-second (CPS) rate (lecture steps 4 and 5). + +## Deliverable + +The functions `get_store_items`, `choose_upgrade`, `buy_upgrade`, `get_cps` and `run_bot`, a command line entry point `main`, and tests for the strategy. + +## Go / No-Go Criteria + +| # | Criterion (objectively checkable) | Go | No-Go | +| --- | --- | --- | --- | +| 1 | `python -m pytest` passes with tests for the purchase strategy (most expensive affordable upgrade first) | Met | Not met | +| 2 | `run_bot` stops after the duration in `constants.py` (300 seconds) and returns the CPS | Met | Not met | +| 3 | The bot uses one loop and adds no runtime dependency beyond `selenium` | Met | Not met | +| 4 | The code is reviewed against `qc-programming-python` and the review record says Go; the run against the live game is the job of MIL-004 | Met | Not met | + +## Dependencies + +| Depends on | Reason | +| --- | --- | +| MIL-002 | Uses the port, constants and click functions | + +## Traceability + +| Business Case objective / KPI / user story | Reference | +| --- | --- | +O1, O2, O3 in [BC-001] + +## Ownership + +| Role | Stakeholder ID (SA) | +| --- | --- | +| Owner | S01 | +| Approving reviewer | S01 | + +## Target Date + +2026-10-31 - within the one-week limit of [BC-001] + +## Tasks + +| # | Task | Summary | Needs its own Use Case/User Story? | Reference | +| --- | --- | --- | --- | --- | +| 1 | Implement get_store_items | Read each product in the store with its name, price and whether it can be bought, through the port. | No | | +| 2 | Implement choose_upgrade | Pure function: given the cookie count and store items, pick the most expensive upgrade that is affordable, or none. | No | | +| 3 | Implement buy_upgrade | Click the chosen product and confirm the count dropped, so a failed click is noticed. | No | | +| 4 | Implement get_cps and run_bot | Run a single loop for 300 seconds that clicks, buys on an interval and finally reads the CPS; the result is returned and printed. | No | | +| 5 | Add the main entry point | `python -m cookie_clicker_bot` starts Chrome, runs the bot and prints `Result : `; the browser is closed in a finally block. | No | | +| 6 | Unit tests for strategy and run loop | Test `choose_upgrade` with edge cases and `run_bot` with a fake game and a fake clock. | No | | + +--- + +[BC-001]: ../business-case.md diff --git a/docs/milestones/mil-004-screenshots-and-readme.md b/docs/milestones/mil-004-screenshots-and-readme.md new file mode 100644 index 0000000..321e7c5 --- /dev/null +++ b/docs/milestones/mil-004-screenshots-and-readme.md @@ -0,0 +1,71 @@ +# Screenshots per lecture step and README + +## Metadata +| Key | Value | +| --- | --- | +| ID | MIL-004 | +| CrossReference | [BC-001] | +| Language | en | +| Domain | it | + +## Version History +| Date | Status | Author | Reviewer | Change | Commit | +| --- | --- | --- | --- | --- | --- | +| 2026-10-28 | Accepted | Jens Tirsvad Nielsen | AI as stand-in for S01 | Initial version (reviewed in RC-007) | pending | + +--- + +## Purpose + +Decide whether the real bot works against the live game and whether the repository explains it: one screenshot per lecture step and a README from the framework template. + +## Deliverable + +A Docker setup with headless Chrome, a capture run that writes one PNG per lecture step to `docs/images/`, and `README.md` built from the framework template with the screenshots, the `.venv` setup, `python -m pip install --upgrade pip`, and the run and test instructions. + +## Go / No-Go Criteria + +| # | Criterion (objectively checkable) | Go | No-Go | +| --- | --- | --- | --- | +| 1 | The Docker run exits 0 and `docs/images/` holds one screenshot for each of the five lecture steps | Met | Not met | +| 2 | The headless run prints a cookies-per-second (CPS) value after 300 seconds | Met | Not met | +| 3 | `bash framework/scripts/check-readme.sh` passes on `README.md` | Met | Not met | +| 4 | The README explains creating and using a local `.venv` and running the tests | Met | Not met | +| 5 | No graphical user interface (GUI) was started on the host desktop | Met | Not met | + +## Dependencies + +| Depends on | Reason | +| --- | --- | +| MIL-003 | Needs the complete bot | + +## Traceability + +| Business Case objective / KPI / user story | Reference | +| --- | --- | +O1, O4, O5 in [BC-001] + +## Ownership + +| Role | Stakeholder ID (SA) | +| --- | --- | +| Owner | S01 | +| Approving reviewer | S01 | + +## Target Date + +2026-11-02 - within the one-week limit of [BC-001] + +## Tasks + +| # | Task | Summary | Needs its own Use Case/User Story? | Reference | +| --- | --- | --- | --- | --- | +| 1 | Dockerfile with headless Chrome | Build a Linux image with Chrome, chromedriver and the project installed; the run is headless so it does not take the host's mouse or keyboard. Environment: Docker container. | No | | +| 2 | Capture one screenshot per lecture step | A small capture module saves a PNG after each lecture step (open, click, count, buy, final CPS) into a folder shared with the host. Environment: Docker container. | No | | +| 3 | Run the full five-minute bot in Docker | Run the real bot against the live game, keep the log, and record the CPS reached. Environment: Docker container. | No | | +| 4 | Write README from the framework template | Fill the template: overview, requirements, venv setup with `python -m pip install --upgrade pip`, run, tests, license, links, appendix, and embed the screenshots. | No | | +| 5 | Run README and plan checks | Run `check-readme.sh` and `check-plan.sh` and fix findings before the pull request. | No | | + +--- + +[BC-001]: ../business-case.md diff --git a/docs/milestones/mil-005-wiki-and-release.md b/docs/milestones/mil-005-wiki-and-release.md new file mode 100644 index 0000000..9ebb760 --- /dev/null +++ b/docs/milestones/mil-005-wiki-and-release.md @@ -0,0 +1,71 @@ +# Wiki in three languages and release + +## Metadata +| Key | Value | +| --- | --- | +| ID | MIL-005 | +| CrossReference | [BC-001] | +| Language | en | +| Domain | it | + +## Version History +| Date | Status | Author | Reviewer | Change | Commit | +| --- | --- | --- | --- | --- | --- | +| 2026-10-28 | Accepted | Jens Tirsvad Nielsen | AI as stand-in for S01 | Initial version (reviewed in RC-008) | pending | + +--- + +## Purpose + +Decide whether the project is ready to share: the wiki explains what each lecture step taught in English, Danish and Bahasa Malaysia, and everything is consistent. + +## Deliverable + +Wiki pages under `docs/wiki/` in English (no suffix), Danish (`-da`) and Bahasa Malaysia (`-ms`) with the same page set, the screenshots per lecture step, a `_Sidebar.md`, and the publish workflow template. + +## Go / No-Go Criteria + +| # | Criterion (objectively checkable) | Go | No-Go | +| --- | --- | --- | --- | +| 1 | Every English wiki page has a `-da` and an `-ms` twin with the same page set | Met | Not met | +| 2 | Each lecture step page embeds its screenshot and has a section on what was gained | Met | Not met | +| 3 | `bash framework/scripts/check-languages.sh` passes | Met | Not met | +| 4 | Doxygen runs clean and `python -m pytest` still passes | Met | Not met | +| 5 | A final summary of milestones, reviews and stand-in decisions is written for S01 | Met | Not met | + +## Dependencies + +| Depends on | Reason | +| --- | --- | +| MIL-004 | Needs the screenshots and README | + +## Traceability + +| Business Case objective / KPI / user story | Reference | +| --- | --- | +O4, O5 in [BC-001] + +## Ownership + +| Role | Stakeholder ID (SA) | +| --- | --- | +| Owner | S01 | +| Approving reviewer | S01 | + +## Target Date + +2026-11-04 - within the one-week limit of [BC-001] + +## Tasks + +| # | Task | Summary | Needs its own Use Case/User Story? | Reference | +| --- | --- | --- | --- | --- | +| 1 | Write the English wiki | Pages Home, Description, Install, one page per lecture step with its screenshot and what was gained, Appendix-Documentation and `_Sidebar.md`, following the framework wiki checklist. | No | | +| 2 | Translate the wiki to Danish | Same page set as English with suffix `-da`; code, commands and IDs stay in English; language line at the top of each page. | No | | +| 3 | Translate the wiki to Bahasa Malaysia | Same page set as English with suffix `-ms`; code, commands and IDs stay in English; language line at the top of each page. | No | | +| 4 | Add the wiki publish workflow | Copy the framework's publish-wiki template into the project's CI folder so the wiki reaches the git host on merge. | No | | +| 5 | Final verification and summary | Run tests, Doxygen and the framework checks, confirm the repository description and topics, and prepare the run summary for S01. | No | | + +--- + +[BC-001]: ../business-case.md diff --git a/docs/project-plan.md b/docs/project-plan.md new file mode 100644 index 0000000..c86c15d --- /dev/null +++ b/docs/project-plan.md @@ -0,0 +1,114 @@ +# Project Plan + +## Metadata +| Key | Value | +| --- | --- | +| ID | PP-001 | +| CrossReference | [BC-001], [SA-001], [MIL-001], [MIL-002], [MIL-003], [MIL-004], [MIL-005] | +| Language | en | +| Domain | it | + +## Version History +| Date | Status | Author | Reviewer | Change | Commit | +| --- | --- | --- | --- | --- | --- | +| 2026-10-28 | Accepted | Jens Tirsvad Nielsen | AI as stand-in for S01 | Initial version (reviewed in RC-003) | pending | + +--- + +## Purpose + +This plan schedules the five phases that deliver the Cookie Clicker bot inside the one-week limit of [BC-001]. + +## Planning Assumptions + +- Week 1 starts 2026-10-28; the plan ends by 2026-11-04, per the Business Case constraint. +- Phase length: one to three days, one branch and one pull request per phase. +- S01 owns every phase; the AI acts as stand-in reviewer for S01 in autonomous mode, recorded in each review. +- The communication cadence of [SA-001] is one pull request per phase and a final summary. + +## Gateway Schedule + +| Gateway | Document | Window | Decision date | Owner | Stories | Main deliverable | Milestone | +| --- | --- | --- | --- | --- | --- | --- | --- | +| Project setup and tooling | [MIL-001] | 2026-10-28 to 2026-10-29 | 2026-10-29 | S01 | none (technical tasks) | pyproject, skeleton, .gitignore, Doxyfile, repository metadata | | +| Bot core | [MIL-002] | 2026-10-29 to 2026-10-30 | 2026-10-30 | S01 | none (technical tasks) | open_game, click_cookie, get_cookie_count with tests | | +| Upgrades and run | [MIL-003] | 2026-10-30 to 2026-10-31 | 2026-10-31 | S01 | none (technical tasks) | strategy, run_bot, main | | +| Screenshots and README | [MIL-004] | 2026-10-31 to 2026-11-02 | 2026-11-02 | S01 | none (technical tasks) | Docker run, screenshots, README | | +| Wiki and release | [MIL-005] | 2026-11-02 to 2026-11-04 | 2026-11-04 | S01 | none (technical tasks) | Wiki en, da, ms and final checks | | + +```plantuml +@startgantt +Project starts 2026-10-28 +[Project setup] starts 2026-10-28 and ends 2026-10-29 +[Bot core] starts 2026-10-29 and ends 2026-10-30 +[Upgrades and run] starts 2026-10-30 and ends 2026-10-31 +[Screenshots and README] starts 2026-10-31 and ends 2026-11-02 +[Wiki and release] starts 2026-11-02 and ends 2026-11-04 +[MIL-001 Go/No-Go] happens 2026-10-29 +[MIL-002 Go/No-Go] happens 2026-10-30 +[MIL-003 Go/No-Go] happens 2026-10-31 +[MIL-004 Go/No-Go] happens 2026-11-02 +[MIL-005 Go/No-Go] happens 2026-11-04 +@endgantt +``` + +## Scope Coverage + +| Business Case scope item | Gateway | +| --- | --- | +| Bot for the lecture steps | MIL-002, MIL-003 | +| pyproject, .gitignore, .venv instructions, Doxyfile, constants.py | MIL-001, MIL-004 | +| pytest tests with a fake game | MIL-002, MIL-003 | +| Headless Docker run and screenshots | MIL-004 | +| README | MIL-004 | +| Wiki in en, da and ms | MIL-005 | +| Description and topics on the git host | MIL-001 | + +## Dependencies + +``` +MIL-001 → MIL-002 → MIL-003 → MIL-004 → MIL-005 +``` + +A No-Go on a phase returns it to its owner for rework and moves every later gateway by the rework time; the end date 2026-11-04 moves only if S01 decides so and records the reason in Planning Assumptions. S01 is owner, reviewer and the only escalation point. + +## Plan Risks + +| Risk | Impact | Mitigation | +| --- | --- | --- | +| The live game changes or is unreachable during MIL-004 | Screenshots and the CPS run slip | Run the capture early in MIL-004; stop and report if it stays unreachable | +| Translation takes longer than planned | MIL-005 slips | Danish and Bahasa Malaysia follow the English page by page, with a short page set | +| Repository name differs from the one in the request | Metadata set on the wrong repository | Use the repository `origin` points to; reported in the plan summary | +| Token handling (Business Case risk: a token leaks) | Secret exposure | Tokens only read from `.env` by scripts outside the project, never printed | +| Live game changes (Business Case risk: page structure changes) | Bot breaks | Ids in `constants.py`; run the capture early in MIL-004 | + +## Open Issues + +- The request names `https://git.tirsystem.com/Tirsvad-Udemy-100_days_of_code` (underscores); `origin` is `Tirsvad-Udemy-100-days-of-code/048-the-coockie-factory`. The plan applies description and topics to the `origin` repository. +- The Product Owner's earlier solution targeted the old Orteil page and used the extra package `continuous_threading`; this project reimplements it for the current game with one loop and no extra dependency. + +## Traceability Analysis + +### Business Goal Alignment + +| Stakeholder | Concern | Business Case objective | +| --- | --- | --- | +| S01 | CN-001, CN-002, CN-007 | O1, O4 | +| S02 | CN-003, CN-004 | O2, O3, O4 | +| S03 | CN-005, CN-006 | O4, O5 | + +## Sign-Off + +| Stakeholder | Decision | Date | +| --- | --- | --- | +| S01 | Pending acceptance of this plan in chat | | + +--- + +[BC-001]: ./business-case.md +[SA-001]: ./stakeholder-analysis.md +[MIL-001]: ./milestones/mil-001-project-setup.md +[MIL-002]: ./milestones/mil-002-bot-core-open-and-click.md +[MIL-003]: ./milestones/mil-003-upgrades-and-five-minute-run.md +[MIL-004]: ./milestones/mil-004-screenshots-and-readme.md +[MIL-005]: ./milestones/mil-005-wiki-and-release.md diff --git a/docs/sqa/reviews/rc-001-business-case.md b/docs/sqa/reviews/rc-001-business-case.md new file mode 100644 index 0000000..7d844d4 --- /dev/null +++ b/docs/sqa/reviews/rc-001-business-case.md @@ -0,0 +1,67 @@ +# SQA Review Record + +## Metadata +| Key | Value | +| --- | --- | +| ID | RC-001 | +| CrossReference | [BC-001], [QC-BC-001] | + +## Version History +| Date | Status | Author | Reviewer | Change | Commit | +| --- | --- | --- | --- | --- | --- | +| 2026-10-28 | Accepted | Jens Tirsvad Nielsen | AI as stand-in for S01 | Initial version | pending | + +--- + +## Artifact Under Review + +- Instance reviewed: [BC-001] +- Checklist used: [QC-BC-001] and [QC-LANG-001] +- Scope: full review +- Language and domain: en / it (the artifact's Metadata rows) +- Language reviewer: S01 (confirmed criteria 3, 5 and 9 of QC-LANG-001 in chat on 2026-10-28) +- Mode: autonomous, not independent (the reviewer is `AI as stand-in for S01`; the language criteria were confirmed by S01 in person) + +## Checklist Results + +| # | Criterion | Status | Evidence/Notes | +| --- | --- | --- | --- | +| 1 | ROI/Cost-Benefit analysis is quantitative, or where qualitative, is explicitly justified | Pass | Cost-Benefit section is qualitative and says why: a learning project with no revenue and no budget. | +| 2 | Risks are identified with documented impact and mitigation | Pass | Risks table has five risks, each with impact and mitigation. | +| 3 | Success criteria are measurable, stating explicit targets rather than vague aspirations | Pass | Success Criteria table has seven rows with numeric or checkable targets (300 seconds, exit code 0, exactly one dependency). | +| 4 | Scope explicitly separates In Scope vs Out of Scope | Pass | Scope has separate In Scope and Out of Scope subsections. | +| 5 | Stakeholders are cross-referenced to Stakeholder Analysis IDs rather than re-described inline | Pass | Stakeholders table cites S01, S02 and S03 and links [SA-001]; no role is re-described. | +| 6 | Methodology and quality-standard foundation are stated explicitly (e.g. ISO/IEC 25010, Larman) | Pass | Methodological and Standards Foundation names the framework, ISO/IEC 25010:2023, Clean Architecture and the Docker GUI rule. | +| 7 | Assumptions and constraints are explicit and clearly distinguished from one another | Pass | Assumptions and Constraints are separate sections. | +| 8 | Document supports executive decision-making with a clear, unambiguous recommendation | Pass | Recommendation is a single word: Proceed. | + +## Language and Domain Results + +| # | Criterion | Status | Evidence/Notes | +| --- | --- | --- | --- | +| 1 | The Metadata table has a `Language` row and a `Domain` row, and neither is a placeholder | Pass | Metadata has Language en and Domain it. | +| 2 | `Language` is a BCP 47 code and `Domain` is a value from the registry's domain list | Pass | en is a BCP 47 code and it is in the registry domain list. | +| 3 | The content (prose and table cells) is written in the stated language | Pass | Confirmed by S01 in chat on 2026-10-28 (named human reviewer); content is English. | +| 4 | The register matches the one the registry gives for the artifact type | Pass | Register: IT Executive English. | +| 5 | Domain terms are the PO terms of the domain's dictionary, with no synonyms | Pass | Confirmed by S01 in chat on 2026-10-28: terms are ordinary IT terms and no dictionary exists or is needed. | +| 6 | Metadata keys, section headings, IDs and statuses are in English | Pass | Headings, keys, IDs and statuses are English. | +| 7 | No translated twin (`..md`) exists beside the document | Pass | No translated twin exists. | +| 8 | A change of language or domain since the previous accepted version has a Version History row and was reviewed again | N-A | First version; no earlier accepted version. | +| 9 | A reviewer competent in the domain, and in the language, has confirmed that the domain terms are used correctly | Pass | S01, competent in English and in IT, confirmed the domain terms in chat on 2026-10-28. | +| 10 | Abbreviations are spelled out on first use, in the stated language | Pass | Abbreviations (CPS, GUI, FURPS+, ADR) are spelled out at first use. | + +## Overall Verdict + +Go - no Mandatory criterion failed and none is Pending; the language criteria 3, 5 and 9 were confirmed by S01. Stand-in review, not independent. + +## Action Items + +| Action | Owner | Due | +| --- | --- | --- | +| None | S01 | - | + +--- + +[BC-001]: ../../business-case.md +[QC-BC-001]: ../../../framework/qc/artifacts/qc-business-case.md +[QC-LANG-001]: ../../../framework/qc/artifacts/qc-language-domain.md diff --git a/docs/sqa/reviews/rc-002-stakeholder-analysis.md b/docs/sqa/reviews/rc-002-stakeholder-analysis.md new file mode 100644 index 0000000..3431c61 --- /dev/null +++ b/docs/sqa/reviews/rc-002-stakeholder-analysis.md @@ -0,0 +1,68 @@ +# SQA Review Record + +## Metadata +| Key | Value | +| --- | --- | +| ID | RC-002 | +| CrossReference | [SA-001], [QC-SA-001] | + +## Version History +| Date | Status | Author | Reviewer | Change | Commit | +| --- | --- | --- | --- | --- | --- | +| 2026-10-28 | Accepted | Jens Tirsvad Nielsen | AI as stand-in for S01 | Initial version | pending | + +--- + +## Artifact Under Review + +- Instance reviewed: [SA-001] +- Checklist used: [QC-SA-001] and [QC-LANG-001] +- Scope: full review +- Language and domain: en / it (the artifact's Metadata rows) +- Language reviewer: S01 (confirmed criteria 3, 5 and 9 of QC-LANG-001 in chat on 2026-10-28) +- Mode: autonomous, not independent (the reviewer is `AI as stand-in for S01`; the language criteria were confirmed by S01 in person) + +## Checklist Results + +| # | Criterion | Status | Evidence/Notes | +| --- | --- | --- | --- | +| 1 | Power/Interest grid is filled for every stakeholder, with no gaps or unclassified entries | Pass | All three stakeholders have Power, Interest and Quadrant. | +| 2 | Each stakeholder is assigned a unique, stable ID (e.g. S01-S11 style) reusable for RACI assignments in other artifacts | Pass | IDs S01, S02, S03 are unique; the document states IDs are stable. | +| 3 | Roles and organizational context are defined with explicit Power and Interest levels, not just narrative description | Pass | Role, organization, power level and interest level are in the summary table. | +| 4 | Communication needs (channel, frequency, deliverable type) are mapped to project phases or milestones | Pass | Communication Requirements table maps channel, frequency, deliverable and phase. | +| 5 | Conflicting stakeholder interests are identified with documented mitigation or resolution strategies | Pass | One conflict (S03 no dependencies against the Selenium requirement) with a mitigation. | +| 6 | Stakeholder concerns are explicitly traced to Business Case objectives | Pass | Traceability Analysis maps S01 to O1-O3, S02 to O2-O4, S03 to O4-O5 of [BC-001]. | +| 7 | Primary concerns are expressed in both business language and a recognized quality-attribute mapping (e.g. FURPS+) | Pass | Concern register maps every concern to a FURPS+ attribute. | +| 8 | Document is understandable and navigable by non-technical stakeholders reviewing their own entry | Pass | Short plain-language tables; each stakeholder entry is one row. | +| 9 | Every concern has a stable ID (`CN-NNN`) in the concern register, with the stakeholder who raised it; IDs are never renumbered or reused | Pass | CN-001 to CN-007 each name the raising stakeholder. | + +## Language and Domain Results + +| # | Criterion | Status | Evidence/Notes | +| --- | --- | --- | --- | +| 1 | The Metadata table has a `Language` row and a `Domain` row, and neither is a placeholder | Pass | Metadata has Language en and Domain it. | +| 2 | `Language` is a BCP 47 code and `Domain` is a value from the registry's domain list | Pass | en is a BCP 47 code and it is in the registry domain list. | +| 3 | The content (prose and table cells) is written in the stated language | Pass | Confirmed by S01 in chat on 2026-10-28 (named human reviewer); content is English. | +| 4 | The register matches the one the registry gives for the artifact type | Pass | Register: IT Professional English. | +| 5 | Domain terms are the PO terms of the domain's dictionary, with no synonyms | Pass | Confirmed by S01 in chat on 2026-10-28: terms are ordinary IT terms and no dictionary exists or is needed. | +| 6 | Metadata keys, section headings, IDs and statuses are in English | Pass | Headings, keys, IDs and statuses are English. | +| 7 | No translated twin (`..md`) exists beside the document | Pass | No translated twin exists. | +| 8 | A change of language or domain since the previous accepted version has a Version History row and was reviewed again | N-A | First version; no earlier accepted version. | +| 9 | A reviewer competent in the domain, and in the language, has confirmed that the domain terms are used correctly | Pass | S01, competent in English and in IT, confirmed the domain terms in chat on 2026-10-28. | +| 10 | Abbreviations are spelled out on first use, in the stated language | Pass | Abbreviations (CPS, GUI, FURPS+, ADR) are spelled out at first use. | + +## Overall Verdict + +Go - no Mandatory criterion failed and none is Pending; the language criteria 3, 5 and 9 were confirmed by S01. Stand-in review, not independent. + +## Action Items + +| Action | Owner | Due | +| --- | --- | --- | +| None | S01 | - | + +--- + +[SA-001]: ../../stakeholder-analysis.md +[QC-SA-001]: ../../../framework/qc/artifacts/qc-stakeholder-analysis.md +[QC-LANG-001]: ../../../framework/qc/artifacts/qc-language-domain.md diff --git a/docs/sqa/reviews/rc-003-project-plan.md b/docs/sqa/reviews/rc-003-project-plan.md new file mode 100644 index 0000000..64435fe --- /dev/null +++ b/docs/sqa/reviews/rc-003-project-plan.md @@ -0,0 +1,74 @@ +# SQA Review Record + +## Metadata +| Key | Value | +| --- | --- | +| ID | RC-003 | +| CrossReference | [PP-001], [QC-PP-001] | + +## Version History +| Date | Status | Author | Reviewer | Change | Commit | +| --- | --- | --- | --- | --- | --- | +| 2026-10-28 | Accepted | Jens Tirsvad Nielsen | AI as stand-in for S01 | Initial version | pending | + +--- + +## Artifact Under Review + +- Instance reviewed: [PP-001] +- Checklist used: [QC-PP-001] and [QC-LANG-001] +- Scope: full review +- Language and domain: en / it (the artifact's Metadata rows) +- Language reviewer: S01 (confirmed criteria 3, 5 and 9 of QC-LANG-001 in chat on 2026-10-28) +- Mode: autonomous, not independent (the reviewer is `AI as stand-in for S01`; the language criteria were confirmed by S01 in person) + +## Checklist Results + +| # | Criterion | Status | Evidence/Notes | +| --- | --- | --- | --- | +| 1 | The plan states its start date, end date and the constraint it must fit | Pass | Planning Assumptions state start 2026-10-28 and end 2026-11-04 per the one-week Business Case constraint. | +| 2 | Every milestone or gateway is listed once with its document, decision date and owner | Pass | Five gateway rows, each linking its MIL document, decision date and owner S01. | +| 3 | Every decision date lies inside the plan's window and is consistent with the dates in the linked `MIL-*` document | Pass | Decision dates 2026-10-29, 10-30, 10-31, 11-02, 11-04 equal the Target Date of MIL-001 to MIL-005 and lie inside the window. | +| 4 | Every in-scope item of the Business Case is delivered at a named gateway (scope coverage) | Pass | Scope Coverage table maps every In Scope item to a gateway. | +| 5 | Dependencies between gateways are stated, acyclic and consistent with the schedule order | Pass | Chain MIL-001 to MIL-005 is acyclic and matches the schedule order. | +| 6 | The plan states what happens to later gateways and to the end date when a gateway is No-Go | Pass | Dependencies section says a No-Go returns the phase to its owner, later gateways move, and S01 alone decides an end-date move. | +| 7 | Owners, reviewers and escalation roles use Stakeholder Analysis IDs and match the governance RACI | N-A | No governance document is in scope of [BC-001]; all owners use the SA ID S01, matching the MIL Ownership tables. | +| 8 | Planning assumptions are listed with their source, and a changed baseline is recorded with its reason | Pass | Planning Assumptions list start, length, reviewer stand-in and cadence with sources. | +| 9 | Plan risks are listed with impact and a mitigation, and trace to Business Case risks where they come from there | Pass | Plan Risks have impact and mitigation; two trace to Business Case risks. | +| 10 | Open issues are listed, and none contradicts a statement elsewhere in the plan | Pass | Open Issues name the repository-name difference and the earlier solution; neither contradicts the plan. | +| 11 | Each gateway's main deliverable is stated and matches the deliverable of its `MIL-*` document | Pass | Main deliverable column matches each MIL Deliverable. | +| 12 | Gateways that deliver user stories name them, and those that do not say why | Pass | Stories column says 'none (technical tasks)'. | +| 13 | The schedule view (table, Gantt) and the dependency view agree with each other | Pass | Gantt bars and the table use the same dates; the chain matches the dependency list. | +| 14 | Each gateway is linked to its issue-tracker milestone, or marked as not yet synced | Pass | Milestone column is blank because no sync has happened yet. | +| 15 | The plan is a singleton: one Project Plan per project, changes recorded in Version History | Pass | Single plan file docs/project-plan.md with one Version History row. | + +## Language and Domain Results + +| # | Criterion | Status | Evidence/Notes | +| --- | --- | --- | --- | +| 1 | The Metadata table has a `Language` row and a `Domain` row, and neither is a placeholder | Pass | Metadata has Language en and Domain it. | +| 2 | `Language` is a BCP 47 code and `Domain` is a value from the registry's domain list | Pass | en is a BCP 47 code and it is in the registry domain list. | +| 3 | The content (prose and table cells) is written in the stated language | Pass | Confirmed by S01 in chat on 2026-10-28 (named human reviewer); content is English. | +| 4 | The register matches the one the registry gives for the artifact type | Pass | Register: IT Executive English. | +| 5 | Domain terms are the PO terms of the domain's dictionary, with no synonyms | Pass | Confirmed by S01 in chat on 2026-10-28: terms are ordinary IT terms and no dictionary exists or is needed. | +| 6 | Metadata keys, section headings, IDs and statuses are in English | Pass | Headings, keys, IDs and statuses are English. | +| 7 | No translated twin (`..md`) exists beside the document | Pass | No translated twin exists. | +| 8 | A change of language or domain since the previous accepted version has a Version History row and was reviewed again | N-A | First version; no earlier accepted version. | +| 9 | A reviewer competent in the domain, and in the language, has confirmed that the domain terms are used correctly | Pass | S01, competent in English and in IT, confirmed the domain terms in chat on 2026-10-28. | +| 10 | Abbreviations are spelled out on first use, in the stated language | Pass | Abbreviations (CPS, GUI, FURPS+, ADR) are spelled out at first use. | + +## Overall Verdict + +Go - no Mandatory criterion failed and none is Pending; the language criteria 3, 5 and 9 were confirmed by S01. Stand-in review, not independent. + +## Action Items + +| Action | Owner | Due | +| --- | --- | --- | +| None | S01 | - | + +--- + +[PP-001]: ../../project-plan.md +[QC-PP-001]: ../../../framework/qc/artifacts/qc-project-plan.md +[QC-LANG-001]: ../../../framework/qc/artifacts/qc-language-domain.md diff --git a/docs/sqa/reviews/rc-004-mil-001-project-setup.md b/docs/sqa/reviews/rc-004-mil-001-project-setup.md new file mode 100644 index 0000000..226ceb7 --- /dev/null +++ b/docs/sqa/reviews/rc-004-mil-001-project-setup.md @@ -0,0 +1,65 @@ +# SQA Review Record + +## Metadata +| Key | Value | +| --- | --- | +| ID | RC-004 | +| CrossReference | [MIL-001], [QC-MIL-001] | + +## Version History +| Date | Status | Author | Reviewer | Change | Commit | +| --- | --- | --- | --- | --- | --- | +| 2026-10-28 | Accepted | Jens Tirsvad Nielsen | AI as stand-in for S01 | Initial version | pending | + +--- + +## Artifact Under Review + +- Instance reviewed: [MIL-001] +- Checklist used: [QC-MIL-001] and [QC-LANG-001] +- Scope: full review +- Language and domain: en / it (the artifact's Metadata rows) +- Language reviewer: S01 (confirmed criteria 3, 5 and 9 of QC-LANG-001 in chat on 2026-10-28) +- Mode: autonomous, not independent (the reviewer is `AI as stand-in for S01`; the language criteria were confirmed by S01 in person) + +## Checklist Results + +| # | Criterion | Status | Evidence/Notes | +| --- | --- | --- | --- | +| 1 | A concrete deliverable is defined for every gate | Pass | Deliverable section names concrete files and outputs. | +| 2 | Explicit Go/No-Go criteria are stated for each gate | Pass | Go / No-Go table lists checkable criteria (commands, files, counts). | +| 3 | Dependencies on other milestones are explicitly mapped | Pass | Dependencies table is filled. | +| 4 | Each milestone is traceable to a Business Case objective or KPI | Pass | Traceability maps to Business Case objectives. | +| 5 | Milestone owner and approving reviewer are identified | Pass | Ownership names S01 as owner and approving reviewer. | +| 6 | Milestone has a defined target date consistent with project constraints | Pass | Target Date lies inside the one-week limit and equals the Project Plan decision date. | + +## Language and Domain Results + +| # | Criterion | Status | Evidence/Notes | +| --- | --- | --- | --- | +| 1 | The Metadata table has a `Language` row and a `Domain` row, and neither is a placeholder | Pass | Metadata has Language en and Domain it. | +| 2 | `Language` is a BCP 47 code and `Domain` is a value from the registry's domain list | Pass | en is a BCP 47 code and it is in the registry domain list. | +| 3 | The content (prose and table cells) is written in the stated language | Pass | Confirmed by S01 in chat on 2026-10-28 (named human reviewer); content is English. | +| 4 | The register matches the one the registry gives for the artifact type | Pass | Register: IT Executive English. | +| 5 | Domain terms are the PO terms of the domain's dictionary, with no synonyms | Pass | Confirmed by S01 in chat on 2026-10-28: terms are ordinary IT terms and no dictionary exists or is needed. | +| 6 | Metadata keys, section headings, IDs and statuses are in English | Pass | Headings, keys, IDs and statuses are English. | +| 7 | No translated twin (`..md`) exists beside the document | Pass | No translated twin exists. | +| 8 | A change of language or domain since the previous accepted version has a Version History row and was reviewed again | N-A | First version; no earlier accepted version. | +| 9 | A reviewer competent in the domain, and in the language, has confirmed that the domain terms are used correctly | Pass | S01, competent in English and in IT, confirmed the domain terms in chat on 2026-10-28. | +| 10 | Abbreviations are spelled out on first use, in the stated language | Pass | Abbreviations (CPS, GUI, FURPS+, ADR) are spelled out at first use. | + +## Overall Verdict + +Go - no Mandatory criterion failed and none is Pending; the language criteria 3, 5 and 9 were confirmed by S01. Stand-in review, not independent. + +## Action Items + +| Action | Owner | Due | +| --- | --- | --- | +| None | S01 | - | + +--- + +[MIL-001]: ../../milestones/mil-001-project-setup.md +[QC-MIL-001]: ../../../framework/qc/artifacts/qc-milestones-gateways.md +[QC-LANG-001]: ../../../framework/qc/artifacts/qc-language-domain.md diff --git a/docs/sqa/reviews/rc-005-mil-002-bot-core-open-and-click.md b/docs/sqa/reviews/rc-005-mil-002-bot-core-open-and-click.md new file mode 100644 index 0000000..72067e9 --- /dev/null +++ b/docs/sqa/reviews/rc-005-mil-002-bot-core-open-and-click.md @@ -0,0 +1,65 @@ +# SQA Review Record + +## Metadata +| Key | Value | +| --- | --- | +| ID | RC-005 | +| CrossReference | [MIL-002], [QC-MIL-001] | + +## Version History +| Date | Status | Author | Reviewer | Change | Commit | +| --- | --- | --- | --- | --- | --- | +| 2026-10-28 | Accepted | Jens Tirsvad Nielsen | AI as stand-in for S01 | Initial version | pending | + +--- + +## Artifact Under Review + +- Instance reviewed: [MIL-002] +- Checklist used: [QC-MIL-001] and [QC-LANG-001] +- Scope: full review +- Language and domain: en / it (the artifact's Metadata rows) +- Language reviewer: S01 (confirmed criteria 3, 5 and 9 of QC-LANG-001 in chat on 2026-10-28) +- Mode: autonomous, not independent (the reviewer is `AI as stand-in for S01`; the language criteria were confirmed by S01 in person) + +## Checklist Results + +| # | Criterion | Status | Evidence/Notes | +| --- | --- | --- | --- | +| 1 | A concrete deliverable is defined for every gate | Pass | Deliverable section names concrete files and outputs. | +| 2 | Explicit Go/No-Go criteria are stated for each gate | Pass | Go / No-Go table lists checkable criteria (commands, files, counts). | +| 3 | Dependencies on other milestones are explicitly mapped | Pass | Dependencies table is filled. | +| 4 | Each milestone is traceable to a Business Case objective or KPI | Pass | Traceability maps to Business Case objectives. | +| 5 | Milestone owner and approving reviewer are identified | Pass | Ownership names S01 as owner and approving reviewer. | +| 6 | Milestone has a defined target date consistent with project constraints | Pass | Target Date lies inside the one-week limit and equals the Project Plan decision date. | + +## Language and Domain Results + +| # | Criterion | Status | Evidence/Notes | +| --- | --- | --- | --- | +| 1 | The Metadata table has a `Language` row and a `Domain` row, and neither is a placeholder | Pass | Metadata has Language en and Domain it. | +| 2 | `Language` is a BCP 47 code and `Domain` is a value from the registry's domain list | Pass | en is a BCP 47 code and it is in the registry domain list. | +| 3 | The content (prose and table cells) is written in the stated language | Pass | Confirmed by S01 in chat on 2026-10-28 (named human reviewer); content is English. | +| 4 | The register matches the one the registry gives for the artifact type | Pass | Register: IT Executive English. | +| 5 | Domain terms are the PO terms of the domain's dictionary, with no synonyms | Pass | Confirmed by S01 in chat on 2026-10-28: terms are ordinary IT terms and no dictionary exists or is needed. | +| 6 | Metadata keys, section headings, IDs and statuses are in English | Pass | Headings, keys, IDs and statuses are English. | +| 7 | No translated twin (`..md`) exists beside the document | Pass | No translated twin exists. | +| 8 | A change of language or domain since the previous accepted version has a Version History row and was reviewed again | N-A | First version; no earlier accepted version. | +| 9 | A reviewer competent in the domain, and in the language, has confirmed that the domain terms are used correctly | Pass | S01, competent in English and in IT, confirmed the domain terms in chat on 2026-10-28. | +| 10 | Abbreviations are spelled out on first use, in the stated language | Pass | Abbreviations (CPS, GUI, FURPS+, ADR) are spelled out at first use. | + +## Overall Verdict + +Go - no Mandatory criterion failed and none is Pending; the language criteria 3, 5 and 9 were confirmed by S01. Stand-in review, not independent. + +## Action Items + +| Action | Owner | Due | +| --- | --- | --- | +| None | S01 | - | + +--- + +[MIL-002]: ../../milestones/mil-002-bot-core-open-and-click.md +[QC-MIL-001]: ../../../framework/qc/artifacts/qc-milestones-gateways.md +[QC-LANG-001]: ../../../framework/qc/artifacts/qc-language-domain.md diff --git a/docs/sqa/reviews/rc-006-mil-003-upgrades-and-five-minute-run.md b/docs/sqa/reviews/rc-006-mil-003-upgrades-and-five-minute-run.md new file mode 100644 index 0000000..d375aa9 --- /dev/null +++ b/docs/sqa/reviews/rc-006-mil-003-upgrades-and-five-minute-run.md @@ -0,0 +1,65 @@ +# SQA Review Record + +## Metadata +| Key | Value | +| --- | --- | +| ID | RC-006 | +| CrossReference | [MIL-003], [QC-MIL-001] | + +## Version History +| Date | Status | Author | Reviewer | Change | Commit | +| --- | --- | --- | --- | --- | --- | +| 2026-10-28 | Accepted | Jens Tirsvad Nielsen | AI as stand-in for S01 | Initial version | pending | + +--- + +## Artifact Under Review + +- Instance reviewed: [MIL-003] +- Checklist used: [QC-MIL-001] and [QC-LANG-001] +- Scope: full review +- Language and domain: en / it (the artifact's Metadata rows) +- Language reviewer: S01 (confirmed criteria 3, 5 and 9 of QC-LANG-001 in chat on 2026-10-28) +- Mode: autonomous, not independent (the reviewer is `AI as stand-in for S01`; the language criteria were confirmed by S01 in person) + +## Checklist Results + +| # | Criterion | Status | Evidence/Notes | +| --- | --- | --- | --- | +| 1 | A concrete deliverable is defined for every gate | Pass | Deliverable section names concrete files and outputs. | +| 2 | Explicit Go/No-Go criteria are stated for each gate | Pass | Go / No-Go table lists checkable criteria (commands, files, counts). | +| 3 | Dependencies on other milestones are explicitly mapped | Pass | Dependencies table is filled. | +| 4 | Each milestone is traceable to a Business Case objective or KPI | Pass | Traceability maps to Business Case objectives. | +| 5 | Milestone owner and approving reviewer are identified | Pass | Ownership names S01 as owner and approving reviewer. | +| 6 | Milestone has a defined target date consistent with project constraints | Pass | Target Date lies inside the one-week limit and equals the Project Plan decision date. | + +## Language and Domain Results + +| # | Criterion | Status | Evidence/Notes | +| --- | --- | --- | --- | +| 1 | The Metadata table has a `Language` row and a `Domain` row, and neither is a placeholder | Pass | Metadata has Language en and Domain it. | +| 2 | `Language` is a BCP 47 code and `Domain` is a value from the registry's domain list | Pass | en is a BCP 47 code and it is in the registry domain list. | +| 3 | The content (prose and table cells) is written in the stated language | Pass | Confirmed by S01 in chat on 2026-10-28 (named human reviewer); content is English. | +| 4 | The register matches the one the registry gives for the artifact type | Pass | Register: IT Executive English. | +| 5 | Domain terms are the PO terms of the domain's dictionary, with no synonyms | Pass | Confirmed by S01 in chat on 2026-10-28: terms are ordinary IT terms and no dictionary exists or is needed. | +| 6 | Metadata keys, section headings, IDs and statuses are in English | Pass | Headings, keys, IDs and statuses are English. | +| 7 | No translated twin (`..md`) exists beside the document | Pass | No translated twin exists. | +| 8 | A change of language or domain since the previous accepted version has a Version History row and was reviewed again | N-A | First version; no earlier accepted version. | +| 9 | A reviewer competent in the domain, and in the language, has confirmed that the domain terms are used correctly | Pass | S01, competent in English and in IT, confirmed the domain terms in chat on 2026-10-28. | +| 10 | Abbreviations are spelled out on first use, in the stated language | Pass | Abbreviations (CPS, GUI, FURPS+, ADR) are spelled out at first use. | + +## Overall Verdict + +Go - no Mandatory criterion failed and none is Pending; the language criteria 3, 5 and 9 were confirmed by S01. Stand-in review, not independent. + +## Action Items + +| Action | Owner | Due | +| --- | --- | --- | +| None | S01 | - | + +--- + +[MIL-003]: ../../milestones/mil-003-upgrades-and-five-minute-run.md +[QC-MIL-001]: ../../../framework/qc/artifacts/qc-milestones-gateways.md +[QC-LANG-001]: ../../../framework/qc/artifacts/qc-language-domain.md diff --git a/docs/sqa/reviews/rc-007-mil-004-screenshots-and-readme.md b/docs/sqa/reviews/rc-007-mil-004-screenshots-and-readme.md new file mode 100644 index 0000000..776e68c --- /dev/null +++ b/docs/sqa/reviews/rc-007-mil-004-screenshots-and-readme.md @@ -0,0 +1,65 @@ +# SQA Review Record + +## Metadata +| Key | Value | +| --- | --- | +| ID | RC-007 | +| CrossReference | [MIL-004], [QC-MIL-001] | + +## Version History +| Date | Status | Author | Reviewer | Change | Commit | +| --- | --- | --- | --- | --- | --- | +| 2026-10-28 | Accepted | Jens Tirsvad Nielsen | AI as stand-in for S01 | Initial version | pending | + +--- + +## Artifact Under Review + +- Instance reviewed: [MIL-004] +- Checklist used: [QC-MIL-001] and [QC-LANG-001] +- Scope: full review +- Language and domain: en / it (the artifact's Metadata rows) +- Language reviewer: S01 (confirmed criteria 3, 5 and 9 of QC-LANG-001 in chat on 2026-10-28) +- Mode: autonomous, not independent (the reviewer is `AI as stand-in for S01`; the language criteria were confirmed by S01 in person) + +## Checklist Results + +| # | Criterion | Status | Evidence/Notes | +| --- | --- | --- | --- | +| 1 | A concrete deliverable is defined for every gate | Pass | Deliverable section names concrete files and outputs. | +| 2 | Explicit Go/No-Go criteria are stated for each gate | Pass | Go / No-Go table lists checkable criteria (commands, files, counts). | +| 3 | Dependencies on other milestones are explicitly mapped | Pass | Dependencies table is filled. | +| 4 | Each milestone is traceable to a Business Case objective or KPI | Pass | Traceability maps to Business Case objectives. | +| 5 | Milestone owner and approving reviewer are identified | Pass | Ownership names S01 as owner and approving reviewer. | +| 6 | Milestone has a defined target date consistent with project constraints | Pass | Target Date lies inside the one-week limit and equals the Project Plan decision date. | + +## Language and Domain Results + +| # | Criterion | Status | Evidence/Notes | +| --- | --- | --- | --- | +| 1 | The Metadata table has a `Language` row and a `Domain` row, and neither is a placeholder | Pass | Metadata has Language en and Domain it. | +| 2 | `Language` is a BCP 47 code and `Domain` is a value from the registry's domain list | Pass | en is a BCP 47 code and it is in the registry domain list. | +| 3 | The content (prose and table cells) is written in the stated language | Pass | Confirmed by S01 in chat on 2026-10-28 (named human reviewer); content is English. | +| 4 | The register matches the one the registry gives for the artifact type | Pass | Register: IT Executive English. | +| 5 | Domain terms are the PO terms of the domain's dictionary, with no synonyms | Pass | Confirmed by S01 in chat on 2026-10-28: terms are ordinary IT terms and no dictionary exists or is needed. | +| 6 | Metadata keys, section headings, IDs and statuses are in English | Pass | Headings, keys, IDs and statuses are English. | +| 7 | No translated twin (`..md`) exists beside the document | Pass | No translated twin exists. | +| 8 | A change of language or domain since the previous accepted version has a Version History row and was reviewed again | N-A | First version; no earlier accepted version. | +| 9 | A reviewer competent in the domain, and in the language, has confirmed that the domain terms are used correctly | Pass | S01, competent in English and in IT, confirmed the domain terms in chat on 2026-10-28. | +| 10 | Abbreviations are spelled out on first use, in the stated language | Pass | Abbreviations (CPS, GUI, FURPS+, ADR) are spelled out at first use. | + +## Overall Verdict + +Go - no Mandatory criterion failed and none is Pending; the language criteria 3, 5 and 9 were confirmed by S01. Stand-in review, not independent. + +## Action Items + +| Action | Owner | Due | +| --- | --- | --- | +| None | S01 | - | + +--- + +[MIL-004]: ../../milestones/mil-004-screenshots-and-readme.md +[QC-MIL-001]: ../../../framework/qc/artifacts/qc-milestones-gateways.md +[QC-LANG-001]: ../../../framework/qc/artifacts/qc-language-domain.md diff --git a/docs/sqa/reviews/rc-008-mil-005-wiki-and-release.md b/docs/sqa/reviews/rc-008-mil-005-wiki-and-release.md new file mode 100644 index 0000000..1004e27 --- /dev/null +++ b/docs/sqa/reviews/rc-008-mil-005-wiki-and-release.md @@ -0,0 +1,65 @@ +# SQA Review Record + +## Metadata +| Key | Value | +| --- | --- | +| ID | RC-008 | +| CrossReference | [MIL-005], [QC-MIL-001] | + +## Version History +| Date | Status | Author | Reviewer | Change | Commit | +| --- | --- | --- | --- | --- | --- | +| 2026-10-28 | Accepted | Jens Tirsvad Nielsen | AI as stand-in for S01 | Initial version | pending | + +--- + +## Artifact Under Review + +- Instance reviewed: [MIL-005] +- Checklist used: [QC-MIL-001] and [QC-LANG-001] +- Scope: full review +- Language and domain: en / it (the artifact's Metadata rows) +- Language reviewer: S01 (confirmed criteria 3, 5 and 9 of QC-LANG-001 in chat on 2026-10-28) +- Mode: autonomous, not independent (the reviewer is `AI as stand-in for S01`; the language criteria were confirmed by S01 in person) + +## Checklist Results + +| # | Criterion | Status | Evidence/Notes | +| --- | --- | --- | --- | +| 1 | A concrete deliverable is defined for every gate | Pass | Deliverable section names concrete files and outputs. | +| 2 | Explicit Go/No-Go criteria are stated for each gate | Pass | Go / No-Go table lists checkable criteria (commands, files, counts). | +| 3 | Dependencies on other milestones are explicitly mapped | Pass | Dependencies table is filled. | +| 4 | Each milestone is traceable to a Business Case objective or KPI | Pass | Traceability maps to Business Case objectives. | +| 5 | Milestone owner and approving reviewer are identified | Pass | Ownership names S01 as owner and approving reviewer. | +| 6 | Milestone has a defined target date consistent with project constraints | Pass | Target Date lies inside the one-week limit and equals the Project Plan decision date. | + +## Language and Domain Results + +| # | Criterion | Status | Evidence/Notes | +| --- | --- | --- | --- | +| 1 | The Metadata table has a `Language` row and a `Domain` row, and neither is a placeholder | Pass | Metadata has Language en and Domain it. | +| 2 | `Language` is a BCP 47 code and `Domain` is a value from the registry's domain list | Pass | en is a BCP 47 code and it is in the registry domain list. | +| 3 | The content (prose and table cells) is written in the stated language | Pass | Confirmed by S01 in chat on 2026-10-28 (named human reviewer); content is English. | +| 4 | The register matches the one the registry gives for the artifact type | Pass | Register: IT Executive English. | +| 5 | Domain terms are the PO terms of the domain's dictionary, with no synonyms | Pass | Confirmed by S01 in chat on 2026-10-28: terms are ordinary IT terms and no dictionary exists or is needed. | +| 6 | Metadata keys, section headings, IDs and statuses are in English | Pass | Headings, keys, IDs and statuses are English. | +| 7 | No translated twin (`..md`) exists beside the document | Pass | No translated twin exists. | +| 8 | A change of language or domain since the previous accepted version has a Version History row and was reviewed again | N-A | First version; no earlier accepted version. | +| 9 | A reviewer competent in the domain, and in the language, has confirmed that the domain terms are used correctly | Pass | S01, competent in English and in IT, confirmed the domain terms in chat on 2026-10-28. | +| 10 | Abbreviations are spelled out on first use, in the stated language | Pass | Abbreviations (CPS, GUI, FURPS+, ADR) are spelled out at first use. | + +## Overall Verdict + +Go - no Mandatory criterion failed and none is Pending; the language criteria 3, 5 and 9 were confirmed by S01. Stand-in review, not independent. + +## Action Items + +| Action | Owner | Due | +| --- | --- | --- | +| None | S01 | - | + +--- + +[MIL-005]: ../../milestones/mil-005-wiki-and-release.md +[QC-MIL-001]: ../../../framework/qc/artifacts/qc-milestones-gateways.md +[QC-LANG-001]: ../../../framework/qc/artifacts/qc-language-domain.md diff --git a/docs/sqa/traceability-matrix.md b/docs/sqa/traceability-matrix.md new file mode 100644 index 0000000..463be9f --- /dev/null +++ b/docs/sqa/traceability-matrix.md @@ -0,0 +1,70 @@ +# Traceability Matrix + +## Metadata +| Key | Value | +| --- | --- | +| ID | TM-001 | +| CrossReference | [BC-001], [SA-001], [PP-001] | + +## Version History +| Date | Status | Author | Reviewer | Change | Commit | +| --- | --- | --- | --- | --- | --- | +| 2026-10-28 | Proposed | Jens Tirsvad Nielsen | | Initial version | pending | + +--- + +## Purpose + +Tracks backward/forward links between artifact instances so that the Business Case's +cross-artifact traceability success criterion is measurable. A row is added or +updated whenever an artifact instance is created or reviewed. + +## Traceability Table + +| Artifact Instance | Type | Language | Domain | Upstream (Backward Link) | Downstream (Forward Link) | Last Reviewed (RC-ID) | +| --- | --- | --- | --- | --- | --- | --- | +| [BC-001] | BC | en | it | - | [SA-001], [PP-001] | [RC-001] | +| [SA-001] | SA | en | it | [BC-001] | [PP-001] | [RC-002] | +| [PP-001] | PP | en | it | [BC-001], [SA-001] | [MIL-001], [MIL-002], [MIL-003], [MIL-004], [MIL-005] | [RC-003] | +| [MIL-001] | MIL | en | it | [PP-001] | [MIL-002] | [RC-004] | +| [MIL-002] | MIL | en | it | [MIL-001] | [MIL-003] | [RC-005] | +| [MIL-003] | MIL | en | it | [MIL-002] | [MIL-004] | [RC-006] | +| [MIL-004] | MIL | en | it | [MIL-003] | [MIL-005] | [RC-007] | +| [MIL-005] | MIL | en | it | [MIL-004] | - | [RC-008] | + +## Concern Coverage + +| Concern (CN-ID) | Views that answer it | Decisions (ADR) | Quality check (TP) | Status | +| --- | --- | --- | --- | --- | +| CN-001 | [MIL-003] | - | - | Gap | +| CN-002 | [BC-001] | - | - | Covered | +| CN-003 | [MIL-002] | - | - | Covered | +| CN-004 | [MIL-004] | - | - | Covered | +| CN-005 | [MIL-001] | - | - | Covered | +| CN-006 | [MIL-001] | - | - | Covered | +| CN-007 | [MIL-005] | - | - | Covered | + +## Open Inconsistencies + +| # | Views | Inconsistency | Found in (RC-ID) | Status | Resolved in | +| --- | --- | --- | --- | --- | --- | +| - | - | None found | - | Closed | - | + +--- + +[BC-001]: ../business-case.md +[SA-001]: ../stakeholder-analysis.md +[PP-001]: ../project-plan.md +[MIL-001]: ../milestones/mil-001-project-setup.md +[MIL-002]: ../milestones/mil-002-bot-core-open-and-click.md +[MIL-003]: ../milestones/mil-003-upgrades-and-five-minute-run.md +[MIL-004]: ../milestones/mil-004-screenshots-and-readme.md +[MIL-005]: ../milestones/mil-005-wiki-and-release.md +[RC-001]: ./reviews/rc-001-business-case.md +[RC-002]: ./reviews/rc-002-stakeholder-analysis.md +[RC-003]: ./reviews/rc-003-project-plan.md +[RC-004]: ./reviews/rc-004-mil-001-project-setup.md +[RC-005]: ./reviews/rc-005-mil-002-bot-core-open-and-click.md +[RC-006]: ./reviews/rc-006-mil-003-upgrades-and-five-minute-run.md +[RC-007]: ./reviews/rc-007-mil-004-screenshots-and-readme.md +[RC-008]: ./reviews/rc-008-mil-005-wiki-and-release.md diff --git a/docs/stakeholder-analysis.md b/docs/stakeholder-analysis.md new file mode 100644 index 0000000..1e7fa22 --- /dev/null +++ b/docs/stakeholder-analysis.md @@ -0,0 +1,78 @@ +# Stakeholder Analysis + +## Metadata +| Key | Value | +| --- | --- | +| ID | SA-001 | +| CrossReference | [BC-001] | +| Language | en | +| Domain | it | + +## Version History +| Date | Status | Author | Reviewer | Change | Commit | +| --- | --- | --- | --- | --- | --- | +| 2026-10-28 | Accepted | Jens Tirsvad Nielsen | AI as stand-in for S01 | Initial version (reviewed in RC-002) | pending | + +--- + +## Purpose + +This analysis names the people who care about the Cookie Clicker bot, classifies them by power and interest (Mendelow grid) and maps concerns to FURPS+ (Functionality, Usability, Reliability, Performance, Supportability, plus constraints) and maps concerns to FURPS+ (Functionality, Usability, Reliability, Performance, Supportability, plus constraints) and maps concerns to FURPS+ (Functionality, Usability, Reliability, Performance, Supportability, plus constraints) and records their concerns, so owners and reviewers elsewhere cite stable stakeholder IDs. + +## Stakeholder Summary Table + +| ID | Name | Role/Title | Organization | Power Level | Interest Level | Quadrant | Primary Concern (Business Language) | +| --- | --- | --- | --- | --- | --- | --- | --- | +| S01 | Jens Tirsvad Nielsen | Course participant, Product Owner, developer and reviewer | Tirsvad | High | High | Manage Closely | A correct bot that shows what was learned and passes review | +| S02 | Udemy coursists | Fellow participants of the bootcamp | Udemy community | Low | High | Keep Informed | Readable, runnable code with the assignment's function names, plus README instructions to run it | +| S03 | GitHub viewers | Visitors browsing the repository for ideas | GitHub community | Low | Medium | Keep Informed | A clear repository description, topics and README, and no runtime dependencies | + +## Power/Interest Classification Rationale + +- **Manage Closely:** S01 decides scope, writes and reviews everything. +- **Keep Informed:** S02 and S03 cannot change the project but consume its output; the README, the wiki and the repository metadata serve them. +- **Keep Satisfied and Monitor:** no stakeholder. + +## Primary Concerns and FURPS+ Mapping + +| Concern ID | Stakeholder | Concern | FURPS+ attribute | +| --- | --- | --- | --- | +| CN-001 | S01 | The bot reaches a high CPS in five minutes | Performance | +| CN-002 | S01 | Every artifact is reviewed before code | Supportability | +| CN-003 | S02 | Code is readable and uses the assignment's function names | Usability | +| CN-004 | S02 | README explains how to run the project and its tests | Usability | +| CN-005 | S03 | Description, topics and README make the repository understandable | Usability | +| CN-006 | S03 | No runtime dependencies beyond what is needed | Implementation constraint | +| CN-007 | S01 | Wiki in English, Danish and Bahasa Malaysia explains what each lecture step taught | Supportability | + +## Communication Requirements + +| Channel | Frequency | Deliverable | Phase | +| --- | --- | --- | --- | +| Chat with S01 | At plan acceptance and at the final summary | Plan, run summary | All | +| Pull request per milestone | Once per milestone | Reviewed change set | Every milestone | +| README and wiki | Once per release | Instructions and lecture write-ups | Documentation milestones | + +## Conflicting Interests and Mitigations + +| Conflict | Mitigation | +| --- | --- | +| S03 wants no runtime dependencies, but the assignment requires Selenium (CN-006 against CN-001) | Selenium is the single runtime dependency (architecture decision record ADR-0001); tests, docs and tooling use none; the README says why | + +## Traceability Analysis + +| Stakeholder | Business Case objective | +| --- | --- | +| S01 | O1, O2, O3 in [BC-001] | +| S02 | O2, O3, O4 in [BC-001] | +| S03 | O4, O5 in [BC-001] | + +## Sign-Off + +| Stakeholder | Decision | Date | +| --- | --- | --- | +| S01 | Pending review | | + +--- + +[BC-001]: ./business-case.md diff --git a/framework b/framework new file mode 160000 index 0000000..7c27919 --- /dev/null +++ b/framework @@ -0,0 +1 @@ +Subproject commit 7c2791939c42c18ec444bce245e9a3958b242cae -- 2.54.0 From 204e5e8861129aa3042cd5d382dc7d3aae8864a8 Mon Sep 17 00:00:00 2001 From: Jens Tirsvad Nielsen Date: Wed, 28 Oct 2026 16:23:33 +0800 Subject: [PATCH 2/2] Resolve pending commit links --- docs/business-case.md | 3 ++- docs/milestones/mil-001-project-setup.md | 3 ++- docs/milestones/mil-002-bot-core-open-and-click.md | 3 ++- docs/milestones/mil-003-upgrades-and-five-minute-run.md | 3 ++- docs/milestones/mil-004-screenshots-and-readme.md | 3 ++- docs/milestones/mil-005-wiki-and-release.md | 3 ++- docs/project-plan.md | 3 ++- docs/sqa/reviews/rc-001-business-case.md | 3 ++- docs/sqa/reviews/rc-002-stakeholder-analysis.md | 3 ++- docs/sqa/reviews/rc-003-project-plan.md | 3 ++- docs/sqa/reviews/rc-004-mil-001-project-setup.md | 3 ++- docs/sqa/reviews/rc-005-mil-002-bot-core-open-and-click.md | 3 ++- .../sqa/reviews/rc-006-mil-003-upgrades-and-five-minute-run.md | 3 ++- docs/sqa/reviews/rc-007-mil-004-screenshots-and-readme.md | 3 ++- docs/sqa/reviews/rc-008-mil-005-wiki-and-release.md | 3 ++- docs/sqa/traceability-matrix.md | 3 ++- docs/stakeholder-analysis.md | 3 ++- 17 files changed, 34 insertions(+), 17 deletions(-) diff --git a/docs/business-case.md b/docs/business-case.md index 5bd8e39..0153251 100644 --- a/docs/business-case.md +++ b/docs/business-case.md @@ -11,7 +11,7 @@ ## Version History | Date | Status | Author | Reviewer | Change | Commit | | --- | --- | --- | --- | --- | --- | -| 2026-10-28 | Accepted | Jens Tirsvad Nielsen | AI as stand-in for S01 | Initial version (reviewed in RC-001) | pending | +| 2026-10-28 | Accepted | Jens Tirsvad Nielsen | AI as stand-in for S01 | Initial version (reviewed in RC-001) | [96a9a78] | --- @@ -136,3 +136,4 @@ Proceed. --- [SA-001]: ./stakeholder-analysis.md +[96a9a78]: https://git.tirsystem.com/Tirsvad-Udemy-100-days-of-code/048-the-coockie-factory/commit/96a9a78f010ce8ae3fce8d84602317d8b5808a13 diff --git a/docs/milestones/mil-001-project-setup.md b/docs/milestones/mil-001-project-setup.md index 542e4b4..e86da2f 100644 --- a/docs/milestones/mil-001-project-setup.md +++ b/docs/milestones/mil-001-project-setup.md @@ -11,7 +11,7 @@ ## Version History | Date | Status | Author | Reviewer | Change | Commit | | --- | --- | --- | --- | --- | --- | -| 2026-10-28 | Accepted | Jens Tirsvad Nielsen | AI as stand-in for S01 | Initial version (reviewed in RC-004) | pending | +| 2026-10-28 | Accepted | Jens Tirsvad Nielsen | AI as stand-in for S01 | Initial version (reviewed in RC-004) | [96a9a78] | --- @@ -70,3 +70,4 @@ O2, O3, O5 in [BC-001] --- [BC-001]: ../business-case.md +[96a9a78]: https://git.tirsystem.com/Tirsvad-Udemy-100-days-of-code/048-the-coockie-factory/commit/96a9a78f010ce8ae3fce8d84602317d8b5808a13 diff --git a/docs/milestones/mil-002-bot-core-open-and-click.md b/docs/milestones/mil-002-bot-core-open-and-click.md index 969f12f..4cb6405 100644 --- a/docs/milestones/mil-002-bot-core-open-and-click.md +++ b/docs/milestones/mil-002-bot-core-open-and-click.md @@ -11,7 +11,7 @@ ## Version History | Date | Status | Author | Reviewer | Change | Commit | | --- | --- | --- | --- | --- | --- | -| 2026-10-28 | Accepted | Jens Tirsvad Nielsen | AI as stand-in for S01 | Initial version (reviewed in RC-005) | pending | +| 2026-10-28 | Accepted | Jens Tirsvad Nielsen | AI as stand-in for S01 | Initial version (reviewed in RC-005) | [96a9a78] | --- @@ -68,3 +68,4 @@ O1, O2, O3 in [BC-001] --- [BC-001]: ../business-case.md +[96a9a78]: https://git.tirsystem.com/Tirsvad-Udemy-100-days-of-code/048-the-coockie-factory/commit/96a9a78f010ce8ae3fce8d84602317d8b5808a13 diff --git a/docs/milestones/mil-003-upgrades-and-five-minute-run.md b/docs/milestones/mil-003-upgrades-and-five-minute-run.md index e3072ec..1ff8ba9 100644 --- a/docs/milestones/mil-003-upgrades-and-five-minute-run.md +++ b/docs/milestones/mil-003-upgrades-and-five-minute-run.md @@ -11,7 +11,7 @@ ## Version History | Date | Status | Author | Reviewer | Change | Commit | | --- | --- | --- | --- | --- | --- | -| 2026-10-28 | Accepted | Jens Tirsvad Nielsen | AI as stand-in for S01 | Initial version (reviewed in RC-006) | pending | +| 2026-10-28 | Accepted | Jens Tirsvad Nielsen | AI as stand-in for S01 | Initial version (reviewed in RC-006) | [96a9a78] | --- @@ -69,3 +69,4 @@ O1, O2, O3 in [BC-001] --- [BC-001]: ../business-case.md +[96a9a78]: https://git.tirsystem.com/Tirsvad-Udemy-100-days-of-code/048-the-coockie-factory/commit/96a9a78f010ce8ae3fce8d84602317d8b5808a13 diff --git a/docs/milestones/mil-004-screenshots-and-readme.md b/docs/milestones/mil-004-screenshots-and-readme.md index 321e7c5..785de0a 100644 --- a/docs/milestones/mil-004-screenshots-and-readme.md +++ b/docs/milestones/mil-004-screenshots-and-readme.md @@ -11,7 +11,7 @@ ## Version History | Date | Status | Author | Reviewer | Change | Commit | | --- | --- | --- | --- | --- | --- | -| 2026-10-28 | Accepted | Jens Tirsvad Nielsen | AI as stand-in for S01 | Initial version (reviewed in RC-007) | pending | +| 2026-10-28 | Accepted | Jens Tirsvad Nielsen | AI as stand-in for S01 | Initial version (reviewed in RC-007) | [96a9a78] | --- @@ -69,3 +69,4 @@ O1, O4, O5 in [BC-001] --- [BC-001]: ../business-case.md +[96a9a78]: https://git.tirsystem.com/Tirsvad-Udemy-100-days-of-code/048-the-coockie-factory/commit/96a9a78f010ce8ae3fce8d84602317d8b5808a13 diff --git a/docs/milestones/mil-005-wiki-and-release.md b/docs/milestones/mil-005-wiki-and-release.md index 9ebb760..e8a3515 100644 --- a/docs/milestones/mil-005-wiki-and-release.md +++ b/docs/milestones/mil-005-wiki-and-release.md @@ -11,7 +11,7 @@ ## Version History | Date | Status | Author | Reviewer | Change | Commit | | --- | --- | --- | --- | --- | --- | -| 2026-10-28 | Accepted | Jens Tirsvad Nielsen | AI as stand-in for S01 | Initial version (reviewed in RC-008) | pending | +| 2026-10-28 | Accepted | Jens Tirsvad Nielsen | AI as stand-in for S01 | Initial version (reviewed in RC-008) | [96a9a78] | --- @@ -69,3 +69,4 @@ O4, O5 in [BC-001] --- [BC-001]: ../business-case.md +[96a9a78]: https://git.tirsystem.com/Tirsvad-Udemy-100-days-of-code/048-the-coockie-factory/commit/96a9a78f010ce8ae3fce8d84602317d8b5808a13 diff --git a/docs/project-plan.md b/docs/project-plan.md index c86c15d..da3b9cc 100644 --- a/docs/project-plan.md +++ b/docs/project-plan.md @@ -11,7 +11,7 @@ ## Version History | Date | Status | Author | Reviewer | Change | Commit | | --- | --- | --- | --- | --- | --- | -| 2026-10-28 | Accepted | Jens Tirsvad Nielsen | AI as stand-in for S01 | Initial version (reviewed in RC-003) | pending | +| 2026-10-28 | Accepted | Jens Tirsvad Nielsen | AI as stand-in for S01 | Initial version (reviewed in RC-003) | [96a9a78] | --- @@ -112,3 +112,4 @@ A No-Go on a phase returns it to its owner for rework and moves every later gate [MIL-003]: ./milestones/mil-003-upgrades-and-five-minute-run.md [MIL-004]: ./milestones/mil-004-screenshots-and-readme.md [MIL-005]: ./milestones/mil-005-wiki-and-release.md +[96a9a78]: https://git.tirsystem.com/Tirsvad-Udemy-100-days-of-code/048-the-coockie-factory/commit/96a9a78f010ce8ae3fce8d84602317d8b5808a13 diff --git a/docs/sqa/reviews/rc-001-business-case.md b/docs/sqa/reviews/rc-001-business-case.md index 7d844d4..ecb0aa3 100644 --- a/docs/sqa/reviews/rc-001-business-case.md +++ b/docs/sqa/reviews/rc-001-business-case.md @@ -9,7 +9,7 @@ ## Version History | Date | Status | Author | Reviewer | Change | Commit | | --- | --- | --- | --- | --- | --- | -| 2026-10-28 | Accepted | Jens Tirsvad Nielsen | AI as stand-in for S01 | Initial version | pending | +| 2026-10-28 | Accepted | Jens Tirsvad Nielsen | AI as stand-in for S01 | Initial version | [96a9a78] | --- @@ -65,3 +65,4 @@ Go - no Mandatory criterion failed and none is Pending; the language criteria 3, [BC-001]: ../../business-case.md [QC-BC-001]: ../../../framework/qc/artifacts/qc-business-case.md [QC-LANG-001]: ../../../framework/qc/artifacts/qc-language-domain.md +[96a9a78]: https://git.tirsystem.com/Tirsvad-Udemy-100-days-of-code/048-the-coockie-factory/commit/96a9a78f010ce8ae3fce8d84602317d8b5808a13 diff --git a/docs/sqa/reviews/rc-002-stakeholder-analysis.md b/docs/sqa/reviews/rc-002-stakeholder-analysis.md index 3431c61..0749197 100644 --- a/docs/sqa/reviews/rc-002-stakeholder-analysis.md +++ b/docs/sqa/reviews/rc-002-stakeholder-analysis.md @@ -9,7 +9,7 @@ ## Version History | Date | Status | Author | Reviewer | Change | Commit | | --- | --- | --- | --- | --- | --- | -| 2026-10-28 | Accepted | Jens Tirsvad Nielsen | AI as stand-in for S01 | Initial version | pending | +| 2026-10-28 | Accepted | Jens Tirsvad Nielsen | AI as stand-in for S01 | Initial version | [96a9a78] | --- @@ -66,3 +66,4 @@ Go - no Mandatory criterion failed and none is Pending; the language criteria 3, [SA-001]: ../../stakeholder-analysis.md [QC-SA-001]: ../../../framework/qc/artifacts/qc-stakeholder-analysis.md [QC-LANG-001]: ../../../framework/qc/artifacts/qc-language-domain.md +[96a9a78]: https://git.tirsystem.com/Tirsvad-Udemy-100-days-of-code/048-the-coockie-factory/commit/96a9a78f010ce8ae3fce8d84602317d8b5808a13 diff --git a/docs/sqa/reviews/rc-003-project-plan.md b/docs/sqa/reviews/rc-003-project-plan.md index 64435fe..eaa1045 100644 --- a/docs/sqa/reviews/rc-003-project-plan.md +++ b/docs/sqa/reviews/rc-003-project-plan.md @@ -9,7 +9,7 @@ ## Version History | Date | Status | Author | Reviewer | Change | Commit | | --- | --- | --- | --- | --- | --- | -| 2026-10-28 | Accepted | Jens Tirsvad Nielsen | AI as stand-in for S01 | Initial version | pending | +| 2026-10-28 | Accepted | Jens Tirsvad Nielsen | AI as stand-in for S01 | Initial version | [96a9a78] | --- @@ -72,3 +72,4 @@ Go - no Mandatory criterion failed and none is Pending; the language criteria 3, [PP-001]: ../../project-plan.md [QC-PP-001]: ../../../framework/qc/artifacts/qc-project-plan.md [QC-LANG-001]: ../../../framework/qc/artifacts/qc-language-domain.md +[96a9a78]: https://git.tirsystem.com/Tirsvad-Udemy-100-days-of-code/048-the-coockie-factory/commit/96a9a78f010ce8ae3fce8d84602317d8b5808a13 diff --git a/docs/sqa/reviews/rc-004-mil-001-project-setup.md b/docs/sqa/reviews/rc-004-mil-001-project-setup.md index 226ceb7..dd2e0d9 100644 --- a/docs/sqa/reviews/rc-004-mil-001-project-setup.md +++ b/docs/sqa/reviews/rc-004-mil-001-project-setup.md @@ -9,7 +9,7 @@ ## Version History | Date | Status | Author | Reviewer | Change | Commit | | --- | --- | --- | --- | --- | --- | -| 2026-10-28 | Accepted | Jens Tirsvad Nielsen | AI as stand-in for S01 | Initial version | pending | +| 2026-10-28 | Accepted | Jens Tirsvad Nielsen | AI as stand-in for S01 | Initial version | [96a9a78] | --- @@ -63,3 +63,4 @@ Go - no Mandatory criterion failed and none is Pending; the language criteria 3, [MIL-001]: ../../milestones/mil-001-project-setup.md [QC-MIL-001]: ../../../framework/qc/artifacts/qc-milestones-gateways.md [QC-LANG-001]: ../../../framework/qc/artifacts/qc-language-domain.md +[96a9a78]: https://git.tirsystem.com/Tirsvad-Udemy-100-days-of-code/048-the-coockie-factory/commit/96a9a78f010ce8ae3fce8d84602317d8b5808a13 diff --git a/docs/sqa/reviews/rc-005-mil-002-bot-core-open-and-click.md b/docs/sqa/reviews/rc-005-mil-002-bot-core-open-and-click.md index 72067e9..c8fa3dc 100644 --- a/docs/sqa/reviews/rc-005-mil-002-bot-core-open-and-click.md +++ b/docs/sqa/reviews/rc-005-mil-002-bot-core-open-and-click.md @@ -9,7 +9,7 @@ ## Version History | Date | Status | Author | Reviewer | Change | Commit | | --- | --- | --- | --- | --- | --- | -| 2026-10-28 | Accepted | Jens Tirsvad Nielsen | AI as stand-in for S01 | Initial version | pending | +| 2026-10-28 | Accepted | Jens Tirsvad Nielsen | AI as stand-in for S01 | Initial version | [96a9a78] | --- @@ -63,3 +63,4 @@ Go - no Mandatory criterion failed and none is Pending; the language criteria 3, [MIL-002]: ../../milestones/mil-002-bot-core-open-and-click.md [QC-MIL-001]: ../../../framework/qc/artifacts/qc-milestones-gateways.md [QC-LANG-001]: ../../../framework/qc/artifacts/qc-language-domain.md +[96a9a78]: https://git.tirsystem.com/Tirsvad-Udemy-100-days-of-code/048-the-coockie-factory/commit/96a9a78f010ce8ae3fce8d84602317d8b5808a13 diff --git a/docs/sqa/reviews/rc-006-mil-003-upgrades-and-five-minute-run.md b/docs/sqa/reviews/rc-006-mil-003-upgrades-and-five-minute-run.md index d375aa9..d73aa02 100644 --- a/docs/sqa/reviews/rc-006-mil-003-upgrades-and-five-minute-run.md +++ b/docs/sqa/reviews/rc-006-mil-003-upgrades-and-five-minute-run.md @@ -9,7 +9,7 @@ ## Version History | Date | Status | Author | Reviewer | Change | Commit | | --- | --- | --- | --- | --- | --- | -| 2026-10-28 | Accepted | Jens Tirsvad Nielsen | AI as stand-in for S01 | Initial version | pending | +| 2026-10-28 | Accepted | Jens Tirsvad Nielsen | AI as stand-in for S01 | Initial version | [96a9a78] | --- @@ -63,3 +63,4 @@ Go - no Mandatory criterion failed and none is Pending; the language criteria 3, [MIL-003]: ../../milestones/mil-003-upgrades-and-five-minute-run.md [QC-MIL-001]: ../../../framework/qc/artifacts/qc-milestones-gateways.md [QC-LANG-001]: ../../../framework/qc/artifacts/qc-language-domain.md +[96a9a78]: https://git.tirsystem.com/Tirsvad-Udemy-100-days-of-code/048-the-coockie-factory/commit/96a9a78f010ce8ae3fce8d84602317d8b5808a13 diff --git a/docs/sqa/reviews/rc-007-mil-004-screenshots-and-readme.md b/docs/sqa/reviews/rc-007-mil-004-screenshots-and-readme.md index 776e68c..7fa0a18 100644 --- a/docs/sqa/reviews/rc-007-mil-004-screenshots-and-readme.md +++ b/docs/sqa/reviews/rc-007-mil-004-screenshots-and-readme.md @@ -9,7 +9,7 @@ ## Version History | Date | Status | Author | Reviewer | Change | Commit | | --- | --- | --- | --- | --- | --- | -| 2026-10-28 | Accepted | Jens Tirsvad Nielsen | AI as stand-in for S01 | Initial version | pending | +| 2026-10-28 | Accepted | Jens Tirsvad Nielsen | AI as stand-in for S01 | Initial version | [96a9a78] | --- @@ -63,3 +63,4 @@ Go - no Mandatory criterion failed and none is Pending; the language criteria 3, [MIL-004]: ../../milestones/mil-004-screenshots-and-readme.md [QC-MIL-001]: ../../../framework/qc/artifacts/qc-milestones-gateways.md [QC-LANG-001]: ../../../framework/qc/artifacts/qc-language-domain.md +[96a9a78]: https://git.tirsystem.com/Tirsvad-Udemy-100-days-of-code/048-the-coockie-factory/commit/96a9a78f010ce8ae3fce8d84602317d8b5808a13 diff --git a/docs/sqa/reviews/rc-008-mil-005-wiki-and-release.md b/docs/sqa/reviews/rc-008-mil-005-wiki-and-release.md index 1004e27..ab87a2c 100644 --- a/docs/sqa/reviews/rc-008-mil-005-wiki-and-release.md +++ b/docs/sqa/reviews/rc-008-mil-005-wiki-and-release.md @@ -9,7 +9,7 @@ ## Version History | Date | Status | Author | Reviewer | Change | Commit | | --- | --- | --- | --- | --- | --- | -| 2026-10-28 | Accepted | Jens Tirsvad Nielsen | AI as stand-in for S01 | Initial version | pending | +| 2026-10-28 | Accepted | Jens Tirsvad Nielsen | AI as stand-in for S01 | Initial version | [96a9a78] | --- @@ -63,3 +63,4 @@ Go - no Mandatory criterion failed and none is Pending; the language criteria 3, [MIL-005]: ../../milestones/mil-005-wiki-and-release.md [QC-MIL-001]: ../../../framework/qc/artifacts/qc-milestones-gateways.md [QC-LANG-001]: ../../../framework/qc/artifacts/qc-language-domain.md +[96a9a78]: https://git.tirsystem.com/Tirsvad-Udemy-100-days-of-code/048-the-coockie-factory/commit/96a9a78f010ce8ae3fce8d84602317d8b5808a13 diff --git a/docs/sqa/traceability-matrix.md b/docs/sqa/traceability-matrix.md index 463be9f..063887d 100644 --- a/docs/sqa/traceability-matrix.md +++ b/docs/sqa/traceability-matrix.md @@ -9,7 +9,7 @@ ## Version History | Date | Status | Author | Reviewer | Change | Commit | | --- | --- | --- | --- | --- | --- | -| 2026-10-28 | Proposed | Jens Tirsvad Nielsen | | Initial version | pending | +| 2026-10-28 | Proposed | Jens Tirsvad Nielsen | | Initial version | [96a9a78] | --- @@ -68,3 +68,4 @@ updated whenever an artifact instance is created or reviewed. [RC-006]: ./reviews/rc-006-mil-003-upgrades-and-five-minute-run.md [RC-007]: ./reviews/rc-007-mil-004-screenshots-and-readme.md [RC-008]: ./reviews/rc-008-mil-005-wiki-and-release.md +[96a9a78]: https://git.tirsystem.com/Tirsvad-Udemy-100-days-of-code/048-the-coockie-factory/commit/96a9a78f010ce8ae3fce8d84602317d8b5808a13 diff --git a/docs/stakeholder-analysis.md b/docs/stakeholder-analysis.md index 1e7fa22..c271b86 100644 --- a/docs/stakeholder-analysis.md +++ b/docs/stakeholder-analysis.md @@ -11,7 +11,7 @@ ## Version History | Date | Status | Author | Reviewer | Change | Commit | | --- | --- | --- | --- | --- | --- | -| 2026-10-28 | Accepted | Jens Tirsvad Nielsen | AI as stand-in for S01 | Initial version (reviewed in RC-002) | pending | +| 2026-10-28 | Accepted | Jens Tirsvad Nielsen | AI as stand-in for S01 | Initial version (reviewed in RC-002) | [96a9a78] | --- @@ -76,3 +76,4 @@ This analysis names the people who care about the Cookie Clicker bot, classifies --- [BC-001]: ./business-case.md +[96a9a78]: https://git.tirsystem.com/Tirsvad-Udemy-100-days-of-code/048-the-coockie-factory/commit/96a9a78f010ce8ae3fce8d84602317d8b5808a13 -- 2.54.0