Skip to content

Commit c2300f1

Browse files
committed
Align Project Instructions workflow and testability governance
1 parent d4de164 commit c2300f1

18 files changed

Lines changed: 304 additions & 22 deletions

docs_build/dev/ProjectInstructions/addendums/branch_lock_governance.md

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ Keep active work attached to the correct assigned team, branch, and OWNER decisi
1313
- An assigned work item keeps its owner of record until complete or OWNER reassignment.
1414
- Work must not move to another team, branch, or PR without OWNER approval.
1515
- A team with no active assignment, active branch, or active PR is inactive.
16-
- A team with a previous PR that is not Closed must not begin another PR unless OWNER documented an explicit stacked PR chain.
16+
- A team with a previous PR that is not Closed must not begin another unrelated PR unless OWNER documented an explicit stacked/sequential workstream.
1717
- PR Open begins only after the branch and PR identity are named.
1818
- Plan, Build, validation, reports, ZIP packaging, and closeout stay tied to the same PR identity and source branch.
1919
- Closed ends only after the final main-return, clean-worktree, local/origin `0/0`, no-untracked-files, required-report, required-ZIP, backlog, applicable tool-state, and branch-disposition gates pass.
@@ -25,7 +25,8 @@ Keep active work attached to the correct assigned team, branch, and OWNER decisi
2525
- Pull latest `origin/main` before creating a work branch.
2626
- Do not create a PR branch unless current branch is `main`, worktree is clean, `main...origin/main` is `0 0`, and `HEAD` SHA matches the published EOD SHA.
2727
- Follow the canonical START / WORK / END lifecycle in `docs_build/dev/ProjectInstructions/addendums/project_instructions_single_source_eod_lock.md`.
28-
- Keep work on the active branch until the PR is merged, the branch is retired, or OWNER says to return to `main`.
28+
- Keep work on the active branch until the PR is merged, the branch is retired, EOD closeout begins, or OWNER says to return to `main`.
29+
- For OWNER-approved stacked/sequential workstreams, sequential PR work stays on the active branch/workstream during the day and does not return to `main` between PRs.
2930
- Do not commit directly to `main`.
3031
- HARD STOP before committing if current branch is `main`.
3132
- HARD STOP if the branch changes unexpectedly during implementation.
@@ -51,7 +52,7 @@ Branch lock governance enforces:
5152
- START on synchronized `main`.
5253
- WORK only on the PR branch.
5354
- END by merging, returning to synchronized `main`, publishing branch, HEAD SHA, and date/time, then stopping all work.
54-
- Mandatory hard stops before commits on `main`, dirty branch creation, non-`0 0` main sync, baseline SHA mismatch, unvalidated merge, or new PR work before synchronized main return.
55+
- Mandatory hard stops before commits on `main`, dirty branch creation, non-`0 0` main sync, baseline SHA mismatch, unvalidated merge, or new unrelated workstream before synchronized main return.
5556

5657
## OWNER Override
5758

docs_build/dev/ProjectInstructions/addendums/environment_configuration_standards.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,8 @@ One shared API/service contract is required across Local (VS Code), DEV, IST, UA
9292

9393
Rules:
9494

95+
- Browser/UI/runtime code must follow `Browser -> API -> Database` for authoritative product data.
96+
- `Local API` means the same shared API/service contract running locally, not a separate local-only API implementation.
9597
- API URLs may differ by `.env` only.
9698
- Do not split Local API and Public API contracts.
9799
- Do not create environment-specific API/service contracts.

docs_build/dev/ProjectInstructions/addendums/environment_governance_model.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,9 @@ One shared API/service contract is required across all environments.
4848

4949
Rules:
5050

51+
- Browser/UI/runtime product data must flow through `Browser -> API -> Database`.
5152
- Browser/UI/runtime code must consume the same API/service contract in Local (VS Code), DEV, IST, UAT, and PROD.
53+
- `Local API` means the shared API/service contract running locally, not a separate API implementation.
5254
- Environment-specific endpoints, keys, buckets, credentials, and prefixes are configuration values only.
5355
- Do not create environment-specific API/service contracts.
5456
- Do not branch API/service behavior by environment name.

docs_build/dev/ProjectInstructions/addendums/no_mock_repository_runtime_source.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,12 @@ Browser → API → Database
1111

1212
Runtime product data must flow through the API/service contract backed by the database.
1313

14+
Canonical ASCII wording for this required flow is:
15+
16+
```text
17+
Browser -> API -> Database
18+
```
19+
1420
## Rules
1521

1622
- Mock repositories are 100% technical debt.

docs_build/dev/ProjectInstructions/addendums/pr_workflow.md

Lines changed: 43 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,26 @@ Define the standard pull request workflow for Game Foundry Studio.
2323
12. Review the PR.
2424
13. OWNER approves merge.
2525
14. Merge to main.
26-
15. Pull latest main before starting the next PR.
26+
15. Pull latest main before starting the next unrelated workstream, or before a new PR when the work is not an OWNER-approved stacked/sequential workstream.
2727
16. Verify Main Verified and Closed gates.
2828

29+
## Daily Branch Workflow
30+
31+
OWNER-approved daily workflow:
32+
33+
- SOD starts from the latest synchronized `main`.
34+
- SOD creates or updates one active team, OWNER, or scoped workstream branch.
35+
- All implementation commits go to the active branch, not `main`.
36+
- Sequential PRs stay on the active branch/workstream during the day when OWNER assigned a stacked or sequential workstream.
37+
- Do not return to `main` between stacked/sequential PRs in the same active workstream.
38+
- `main` is only the SOD baseline and the EOD return target, unless OWNER explicitly approves an intermediate merge checkpoint.
39+
- EOD merges or closes OWNER-approved work, pushes, returns to `main`, and verifies:
40+
- current branch is `main`
41+
- worktree clean
42+
- local/origin sync is `0 0`
43+
44+
This section supersedes older active wording that implies returning to `main` between every PR inside an OWNER-approved stacked/sequential workstream.
45+
2946
## Branch Lifecycle (Canonical)
3047

3148
Every PR follows exactly three phases:
@@ -101,7 +118,8 @@ Closed gates:
101118
- Source branches are retained by default after merge and closeout.
102119
- Do not mix unrelated scopes.
103120
- Do not start dependent PRs until the required base PR is merged.
104-
- Always return to main before starting the next PR.
121+
- Return to `main` before starting an unrelated PR or new workstream.
122+
- Do not return to `main` between PRs in the same OWNER-approved stacked/sequential workstream unless OWNER approves an EOD or intermediate merge checkpoint.
105123
- A team must not begin another PR if its previous PR is not Closed.
106124
- Exception is allowed only for explicitly documented stacked PR chains.
107125
- If validation fails, stop and report.
@@ -140,6 +158,29 @@ Each tool MVP PR plan or template must include:
140158

141159
Visible acceptance must be Creator-facing first. Architecture can be handled under the covers, but the PR purpose must be user-testable.
142160

161+
## Product Owner Testable Definition
162+
163+
A request to complete a page, tool, or testable MVP means Product Owner testable.
164+
165+
Not acceptable as a completed/testable page or tool:
166+
167+
- shell-only page
168+
- `Not implemented yet`
169+
- placeholder-only workspace, inspector, or output sections
170+
- planned-only tile
171+
- template-only page
172+
- route that loads but cannot be used
173+
174+
Required for Product Owner testable completion:
175+
176+
- visible working controls
177+
- API-backed data where required
178+
- validation and error states
179+
- empty states
180+
- save/load behavior where applicable
181+
- manual validation steps for Product Owner
182+
- targeted Playwright coverage where impacted.
183+
143184
## OWNER Shortcut: PRs
144185

145186
Keyword:

docs_build/dev/ProjectInstructions/addendums/project_instructions_single_source_eod_lock.md

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ END
6868

6969
## START
7070

71-
Every team begins on `main`.
71+
Every team begins SOD from `main`.
7272

7373
Required:
7474

@@ -91,7 +91,7 @@ main...origin/main
9191
HEAD equals published EOD SHA
9292
```
9393

94-
Only after ALL four pass may a branch be created.
94+
Only after ALL four pass may a branch be created or the active OWNER-approved workstream branch be updated.
9595

9696
Create the PR branch:
9797

@@ -115,6 +115,8 @@ From branch creation until merge:
115115
- Push only the PR branch.
116116
- Execute validation from the PR branch.
117117
- Open/update the PR from the PR branch.
118+
- For OWNER-approved stacked/sequential workstreams, remain on the active workstream branch between sequential PRs during the day.
119+
- Do not return to `main` between sequential PRs in the same active workstream unless OWNER explicitly approves an EOD or intermediate merge checkpoint.
118120

119121
Hard Stops:
120122

@@ -192,7 +194,8 @@ STOP if:
192194
- `main...origin/main` is not `0 0` before creating PR branch
193195
- `HEAD` SHA differs from published baseline
194196
- merge attempted without successful validation
195-
- new PR started before returning to synchronized `main`
197+
- new unrelated PR or workstream started before returning to synchronized `main`
198+
- sequential work continues without an OWNER-approved stacked/sequential workstream model
196199

197200
## Start Of Day Boundary
198201

docs_build/dev/ProjectInstructions/addendums/test_structure_standardization.md

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@ Standardize testing locations and ensure independent tool validation.
66

77
## Canonical Test Structure
88

9+
Page-level Playwright tests:
10+
- tests/playwright/{runtime-page-path}/index.spec.mjs
11+
912
Tool tests:
1013
- tests/toolbox/{tool-name}/
1114

@@ -31,3 +34,36 @@ Regression tests:
3134
- Tool tests validate tool functionality.
3235
- Regression tests validate platform behavior.
3336
- New tests follow the canonical structure.
37+
- Every user-accessible page must have at least one page-level Playwright test.
38+
- Runtime page path determines the page-level Playwright test path.
39+
- Primary page-level Playwright test file should be `index.spec.mjs`.
40+
- Do not organize new page-level Playwright tests only by feature nickname or technology bucket when a page path exists.
41+
- Legacy broad tests may remain while migration is planned; document migration/deprecation instead of moving broad legacy tests unless the PR scope requires it.
42+
43+
## Page-Level Playwright Examples
44+
45+
- `/admin/index.html` -> `tests/playwright/admin/index/index.spec.mjs`
46+
- `/toolbox/sprites/index.html` -> `tests/playwright/toolbox/sprites/index.spec.mjs`
47+
- `/toolbox/game-hub/index.html` -> `tests/playwright/toolbox/game-hub/index.spec.mjs`
48+
- `/toolbox/messages/index.html` -> `tests/playwright/toolbox/messages/index.spec.mjs`
49+
- `/toolbox/game-configuration/index.html` -> `tests/playwright/toolbox/game-configuration/index.spec.mjs`
50+
51+
## Minimum Page-Level Playwright Coverage
52+
53+
Minimum page-level test:
54+
55+
- route loads
56+
- page renders
57+
- navigation works
58+
- no visible placeholder-only state for completed/testable pages
59+
- no runtime console errors when feasible
60+
61+
Additional scenario files may use:
62+
63+
- `create.spec.mjs`
64+
- `edit.spec.mjs`
65+
- `delete.spec.mjs`
66+
- `archive.spec.mjs`
67+
- `navigation.spec.mjs`
68+
- `permissions.spec.mjs`
69+
- `validation.spec.mjs`

docs_build/dev/ProjectInstructions/addendums/tool_mvp_stacked_pr_standard.md

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,27 @@ For tool MVP PR planning, visible acceptance must be Creator-facing first.
4040

4141
Architecture can be handled under the covers, but PR purpose must be user-testable.
4242

43+
A request to complete a page, tool, or testable MVP means Product Owner testable.
44+
45+
Not acceptable as complete/testable:
46+
47+
- shell-only page
48+
- `Not implemented yet`
49+
- placeholder-only workspace, inspector, or output sections
50+
- planned-only tile
51+
- template-only page
52+
- route that loads but cannot be used
53+
54+
Required for Product Owner testable completion:
55+
56+
- visible working controls
57+
- API-backed data where required
58+
- validation and error states
59+
- empty states
60+
- save/load behavior where applicable
61+
- manual validation steps for Product Owner
62+
- targeted Playwright coverage where impacted.
63+
4364
Each tool MVP PR must state:
4465
- Creator-testable outcome
4566
- What Playwright tests
@@ -81,4 +102,6 @@ Each PR in the stack still follows the canonical START / WORK / END lifecycle an
81102

82103
When OWNER gives one large Codex command for a tool MVP stack, Codex may continue from one completed PR to the next without stopping for a conversational checkpoint, unless a blocker listed in this standard occurs.
83104

84-
The final PR in the stack must perform normal closeout and stop all work after returning to synchronized main.
105+
During an OWNER-approved day workstream, sequential PRs stay on the active workstream branch and do not return to `main` between PRs.
106+
107+
The final PR in the stack must perform normal EOD closeout or OWNER-approved merge-checkpoint closeout and stop all work after returning to synchronized main.

docs_build/dev/ProjectInstructions/backlog/BACKLOG_MASTER.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,10 @@
2626
0% Complete — Create the visual look of your game
2727

2828
- [ ] Bravo - Asset Studio V2
29-
- [ ] Bravo - Sprite Studio V2
29+
- [ ] Charlie - Sprites canvas editor MVP
30+
- Sprites is a creator tool, not only an asset metadata library.
31+
- MVP requires canvas/grid editor behavior, width/height controls, Palette/Colors-only reusable colors, color selection from Palette/Colors, pixel painting, save/load sprite grid data through the API/database, and Product Owner manual validation.
32+
- Category is removed from Sprites MVP planning.
3033
- [ ] Bravo - Animation Studio V2
3134
- [ ] Bravo - Palette Manager
3235
- [ ] Bravo - Video Studio

docs_build/dev/ProjectInstructions/team_assignments/TEAM_ASSIGNMENTS.md

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -48,15 +48,11 @@ Current OWNER clarification:
4848

4949
## Team Alfa
5050

51-
Status: Active
52-
53-
Active assignment: PR_26177_DELTA_056-shared-validation-assertions.
54-
55-
Active branch: PR_26177_DELTA_056-shared-validation-assertions.
51+
Status: Available
5652

57-
Active PR: PR_26177_DELTA_056-shared-validation-assertions.
53+
Active assignment: none.
5854

59-
OWNER override approved: Continue Team Delta random utility stack with PR_26177_DELTA_056-shared-validation-assertions.
55+
Active branch: none.
6056

6157
## Team Bravo
6258

@@ -76,11 +72,15 @@ Active branch: none.
7672

7773
## Team Delta
7874

79-
Status: Available
75+
Status: Active
8076

81-
Active assignment: none.
77+
Active assignment: PR_26177_DELTA_056-shared-validation-assertions.
8278

83-
Active branch: none.
79+
Active branch: PR_26177_DELTA_056-shared-validation-assertions.
80+
81+
Active PR: PR_26177_DELTA_056-shared-validation-assertions.
82+
83+
OWNER override approved: Continue Team Delta random utility stack with PR_26177_DELTA_056-shared-validation-assertions.
8484

8585
## Team Golf
8686

0 commit comments

Comments
 (0)