Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions docs/planning/implementation-notes.md
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,7 @@ Choices made while building Release 1 where the brief or the planning documents
| 59 | **Interview times:** the hiring manager offers 1 to 5 future times on a submitted candidate (one open offer at a time); the recruiter confirms one, which creates the round with the normal rules (a submitted candidate moves to interviewing), or declines all. A time that has passed since is refused. The default round name is "Interview round N". | FR-HMP-06, decision 4. | `portal/extras.ts`, `portal/resolve-extras.ts` |
| 60 | **A candidate's own updates:** a second submission while one is waiting replaces the fields it names. Accepting email, phone, compensation or work authorization makes a new approved version of the profile (the resume file is untouched) and so marks match analyses stale; availability goes to the candidate record. It needs a confirmed profile first (409 otherwise). The portal sign-in address does not change when an email is accepted. Activity log entries name the fields, never the values. | FR-CDP-04; profile fields come from the approved profile (T-2-08). | `portal/resolve-extras.ts` |
| 61 | The end-to-end run found two real faults, now fixed: approving a draft did not refresh the rest of the screen (the profile still said "no version confirmed"; every query is now refreshed after an approval), and choosing today's date for a submission or a candidate decision early in the day was sent as noon UTC and refused as "in the future" (`lib/dates.ts` kept at the merge). Contact details (emails, phone numbers) are also taken out of pasted notes before they reach a model. | Found by walking the loop, not by unit tests. | `artifact-editor.tsx`, `lib/dates.ts` |
| 62 | **Goals built by hand (G#9, G#10, G#11):** no Build fleet or self-hosted runner is attached to this repository, so nothing merges or opens a PR for a goal on its own. For a goal built by hand: take it (`ibuild engine goal take`) before writing code so no second implementation starts, create its task, record the commit range, report each phase, and only then accept the goal. `goal land` and the armed accept assume a runner and a goal PR, and accepting a goal with no PR is refused. G#9 was built twice (PR #9 merged, PR #10 closed) because the goal showed no branch or PR in Build while an open PR existed on GitHub; check `gh pr list` for the goal number first. G#10 was accepted before it had a task, and Build cannot reopen an accepted goal, so its record was carried by G#11. | Keeps Build's goal and task records true to what shipped, and avoids duplicate work. | `ibuild engine goal take`, `ibuild engine create`, `ibuild engine goal accept`; PRs #9, #10, #11 |

## Running things

Expand Down
Loading