Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
50f7163
docs(orgtrack-pm): freeze v1 contract, fixtures and phase-0 decisions
Neonforge98 Aug 5, 2026
f8b587d
refactor(agents): delete work-item-manager and dead automation paths
Neonforge98 Aug 5, 2026
64e168f
feat(pm): add work application service with FSM, audit and watermark
Neonforge98 Aug 5, 2026
0eaf930
feat(pm): converge UI write paths onto work.create and partial updates
Neonforge98 Aug 5, 2026
8994b7b
feat(pm): route agent-tool work item creation through work.create
Neonforge98 Aug 5, 2026
c9c76de
refactor(pm): convert manage_work_item standalone paths to atomic RMW
Neonforge98 Aug 5, 2026
f1ec6e7
feat(pm-cli): add org2-pm console binary with context and work commands
Neonforge98 Aug 5, 2026
8149d14
feat(pm-cli): wire idempotency dedup into mutation commands
Neonforge98 Aug 5, 2026
3cfe440
refactor(modes): converge divergent mode catalogs to a single source
Neonforge98 Aug 5, 2026
f662582
feat(pm): add portable routine spec domain with validated apply
Neonforge98 Aug 5, 2026
5e6b110
feat(pm): materialize routine runs into work graphs via routine.invoke
Neonforge98 Aug 5, 2026
dcbff52
feat(pm-cli): wire routine commands and durable run-status projection
Neonforge98 Aug 5, 2026
9f02f6d
feat(pm): convert legacy RoutineDefinitions into portable specs
Neonforge98 Aug 5, 2026
5ade99a
feat(pm): drive portable routines from the unified scheduler
Neonforge98 Aug 5, 2026
1f57ee7
refactor(automation): retire the cron execution path
Neonforge98 Aug 5, 2026
0b43bb7
feat(pm): make orchestrator completion an explicit audited policy
Neonforge98 Aug 5, 2026
5b9b005
feat(pm): add provider binding table and capability-profile registry
Neonforge98 Aug 5, 2026
d3a4fe9
feat(pm): add persistent product-mode axis to sessions
Neonforge98 Aug 5, 2026
b57bd44
refactor(ui): delete the dead workflow-drag signal
Neonforge98 Aug 5, 2026
fb28e24
chore(pm): finish the terminology sweep for retired PM identifiers
Neonforge98 Aug 5, 2026
f99635c
refactor(tools): consolidate work-item CRUD onto manage_work_item
Neonforge98 Aug 5, 2026
54e22b3
fix(app): thread product_mode through the remaining launch initializers
Neonforge98 Aug 5, 2026
2fa4aab
feat(pm): expose product mode end to end through the session aggregate
Neonforge98 Aug 5, 2026
92c1f12
feat(ui): add Project to the composer mode selector
Neonforge98 Aug 5, 2026
efeb258
feat(pm): gate the PM mutation tools on Project product mode
Neonforge98 Aug 5, 2026
c110215
fix(pm): close product-mode gating gaps across launch surfaces
Neonforge98 Aug 5, 2026
306a340
fix(ui): make the in-session mode pill reach Project mode
Neonforge98 Aug 5, 2026
ec3ae29
feat(pm): finish the Project session surface
Neonforge98 Aug 5, 2026
993bad1
fix(pm): scope the bootstrap root to a real local org or personal
Neonforge98 Aug 5, 2026
7c32109
fix(pm): keep git subprocesses out of the completion transaction
Neonforge98 Aug 5, 2026
a8a2266
fix(ux): land AI create flows in the launched session
Neonforge98 Aug 5, 2026
2f1ef0d
fix(ux): make the AI work-item filler an agent that has the tools
Neonforge98 Aug 5, 2026
9402844
fix(pm): stop linked sessions repurposing their draft for new items
Neonforge98 Aug 6, 2026
4df18ba
chore: update orgtrack protocol branch from develop
Harry19081 Aug 6, 2026
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
44 changes: 22 additions & 22 deletions docs/architecture-audit-2026-08-02/OnboardingReadinessFlow.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,32 +9,32 @@ Pass. The flow has one persisted owner (`general.setupWalkthroughProgress`), use

## Layer review

| Layer | Coverage | Verdict | Evidence |
| --- | --- | --- | --- |
| 1. Compile / type integrity | Full | pass | `pnpm typecheck`; typed enum-backed handoff and milestone values. |
| 2. Dead code / parallel paths | Full | pass | Removed the three presentation variants and duplicate walkthrough sidebar; advanced theme remains in canonical Settings. |
| 3. State machine / ownership | Full | pass | `idle → pending → shown`; completion transitions are idempotent and persisted through a functional Settings atom. |
| 4. Semantic overload | Full | pass | Session and organization are derived facts; invite and Team Inbox actions use explicitly named education milestones. |
| 5. Catch-all state / types | Full | pass | No boolean catch-all or string-pattern branching; schema enums constrain every new state. |
| 6. Cross-domain boundaries | Full | pass | Progress helpers live under `store/settings`; cloud invite code no longer imports onboarding UI and writes only after `createCloudInvite` succeeds. |
| 7. Naming / API surface | Full | pass | `requestSetupGuideHandoff`, `consumeSetupGuideHandoff`, and `completeSetupGuideMilestone` describe transition intent. |
| 8. Wire protocol / persistence compatibility | Full | pass | No RPC shape changed; Zod defaults normalize valid legacy progress with `idle` and `[]`. |
| 9. Initialization parity | Reviewed, not changed | pass | No new init entry point; completed setup and hidden test-entry converge through the same stored progress schema. |
| 10. Resolver symmetry | Not applicable | pass | No multi-source resolver or fallback chain was added. |
| Layer | Coverage | Verdict | Evidence |
| -------------------------------------------- | --------------------- | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| 1. Compile / type integrity | Full | pass | `pnpm typecheck`; typed enum-backed handoff and milestone values. |
| 2. Dead code / parallel paths | Full | pass | Removed the three presentation variants and duplicate walkthrough sidebar; advanced theme remains in canonical Settings. |
| 3. State machine / ownership | Full | pass | `idle → pending → shown`; completion transitions are idempotent and persisted through a functional Settings atom. |
| 4. Semantic overload | Full | pass | Session and organization are derived facts; invite and Team Inbox actions use explicitly named education milestones. |
| 5. Catch-all state / types | Full | pass | No boolean catch-all or string-pattern branching; schema enums constrain every new state. |
| 6. Cross-domain boundaries | Full | pass | Progress helpers live under `store/settings`; cloud invite code no longer imports onboarding UI and writes only after `createCloudInvite` succeeds. |
| 7. Naming / API surface | Full | pass | `requestSetupGuideHandoff`, `consumeSetupGuideHandoff`, and `completeSetupGuideMilestone` describe transition intent. |
| 8. Wire protocol / persistence compatibility | Full | pass | No RPC shape changed; Zod defaults normalize valid legacy progress with `idle` and `[]`. |
| 9. Initialization parity | Reviewed, not changed | pass | No new init entry point; completed setup and hidden test-entry converge through the same stored progress schema. |
| 10. Resolver symmetry | Not applicable | pass | No multi-source resolver or fallback chain was added. |

## State and edge-case matrix

| Condition | Behavior |
| --- | --- |
| Finish succeeds | Preferences completion and pending handoff persist in one batch, then Workstation opens. |
| Finish persistence fails | User remains on setup; no completed outcome or handoff is published. |
| Guide opens with pending handoff | Panel opens and persists `shown`. |
| Handoff persistence fails | Panel remains usable; stored `pending` can retry on a later mount. |
| User skipped setup | No handoff is armed. |
| Existing completed user lacks new fields | Defaults to `idle`; no surprise auto-open. |
| Invite API fails | Invite milestone remains incomplete. |
| Condition | Behavior |
| ----------------------------------------------- | ------------------------------------------------------------------------------------------------- |
| Finish succeeds | Preferences completion and pending handoff persist in one batch, then Workstation opens. |
| Finish persistence fails | User remains on setup; no completed outcome or handoff is published. |
| Guide opens with pending handoff | Panel opens and persists `shown`. |
| Handoff persistence fails | Panel remains usable; stored `pending` can retry on a later mount. |
| User skipped setup | No handoff is armed. |
| Existing completed user lacks new fields | Defaults to `idle`; no surprise auto-open. |
| Invite API fails | Invite milestone remains incomplete. |
| Invite succeeds but education persistence fails | Invite remains successful; guide milestone can remain incomplete without corrupting domain truth. |
| Repeated completion action | Functional update returns the same object and avoids a disk write. |
| Repeated completion action | Functional update returns the same object and avoids a disk write. |

## Verification

Expand Down
5 changes: 3 additions & 2 deletions docs/architecture/managed-cloud-collaboration.md
Original file line number Diff line number Diff line change
Expand Up @@ -123,8 +123,9 @@ detail views and ChatPanel. Lock release is serialized as explicit JSON

## Create with AI

Create with AI uses `builtin:work-item-manager` by default and follows one
durable-draft invariant:
Create with AI uses `builtin:os` by default (the Work Item Manager persona was
retired; `manage_work_item`/`manage_project` are ordinary built-in tools) and
follows one durable-draft invariant:

1. Before launch, the UI allocates a cloud-aware Work Item ID and writes one
draft in the selected Project or organization-scoped standalone store.
Expand Down
30 changes: 15 additions & 15 deletions docs/frontend-ui-audit-2026-08-02/OnboardingLayout.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,30 +6,30 @@

## D1 — Raw HTML vs Design System

| Line | Element | Verdict | Reason | Suggested change |
| --- | --- | --- | --- | --- |
| 118–168 | Layout `<div>` elements | keep with reason | Shared structural layout owns drag regions and split/single-column composition; there is no interactive control to replace. | — |
| Line | Element | Verdict | Reason | Suggested change |
| ------- | ----------------------- | ---------------- | --------------------------------------------------------------------------------------------------------------------------- | ---------------- |
| 118–168 | Layout `<div>` elements | keep with reason | Shared structural layout owns drag regions and split/single-column composition; there is no interactive control to replace. | — |

## D2 — Arbitrary Tailwind Value vs Token

| Line | Value | Verdict | Reason | Suggested change |
| --- | --- | --- | --- | --- |
| 19 | Custom onboarding shadow | keep with reason | Component-local elevation is reused through `ONBOARDING_CARD_SHADOW` across every contained variant. | — |
| 80, 138 | `z-[9999]`, `z-[100]` | abstract candidate | Repo sweep found `z-[9999]` in seven unrelated surfaces; this is a shared layering-scale gap, not safe to change site-by-site. | Define named overlay/drag-region z-index tokens in a separate sweep. |
| 91–112 | Fixed onboarding bounds | keep with reason | The layout is the authoritative owner of its desktop container dimensions; values are paired across split and single variants. | — |
| 138 | `h-[52px]` | keep with reason | Matches the native titlebar interaction height and is isolated to the shared drag region. | — |
| Line | Value | Verdict | Reason | Suggested change |
| ------- | ------------------------ | ------------------ | ------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------- |
| 19 | Custom onboarding shadow | keep with reason | Component-local elevation is reused through `ONBOARDING_CARD_SHADOW` across every contained variant. | — |
| 80, 138 | `z-[9999]`, `z-[100]` | abstract candidate | Repo sweep found `z-[9999]` in seven unrelated surfaces; this is a shared layering-scale gap, not safe to change site-by-site. | Define named overlay/drag-region z-index tokens in a separate sweep. |
| 91–112 | Fixed onboarding bounds | keep with reason | The layout is the authoritative owner of its desktop container dimensions; values are paired across split and single variants. | — |
| 138 | `h-[52px]` | keep with reason | Matches the native titlebar interaction height and is isolated to the shared drag region. | — |

## D3 — Hardcoded Sizes / Colors

| Line | Value | Verdict | Reason | Suggested change |
| --- | --- | --- | --- | --- |
| 91–112 | 1400/840/560/420/400/320 px bounds | keep with reason | These are responsive component geometry, not ad-hoc visual styling at call sites. | — |
| Line | Value | Verdict | Reason | Suggested change |
| ------ | ---------------------------------- | ---------------- | --------------------------------------------------------------------------------- | ---------------- |
| 91–112 | 1400/840/560/420/400/320 px bounds | keep with reason | These are responsive component geometry, not ad-hoc visual styling at call sites. | — |

## D4 — Accessibility

| Line | Element | Verdict | Reason | Suggested change |
| --- | --- | --- | --- | --- |
| 127, 136 | Drag regions | keep with reason | Both are non-content interaction layers and explicitly `aria-hidden`. | — |
| Line | Element | Verdict | Reason | Suggested change |
| -------- | ------------ | ---------------- | --------------------------------------------------------------------- | ---------------- |
| 127, 136 | Drag regions | keep with reason | Both are non-content interaction layers and explicitly `aria-hidden`. | — |

## D5 — Visual Patterns Observed

Expand Down
32 changes: 16 additions & 16 deletions docs/frontend-ui-audit-2026-08-02/SetupPreferencesPanel.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,31 +6,31 @@

## D1 — Raw HTML vs Design System

| Line | Element | Verdict | Reason | Suggested change |
| --- | --- | --- | --- | --- |
| 146 | Action wrapper `<div>` | keep with reason | Layout-only wrapper around shared `Button` components. | — |
| 156 | Arrow `<span>` | keep with reason | Decorative inline glyph is hidden from assistive technology. | — |
| 79–143 | Preview and preference controls | keep with reason | Uses shared `FormField`, `Select`, `LanguageSelector`, `SectionContainer`, and `SectionRow`; no raw interactive element is introduced. | — |
| Line | Element | Verdict | Reason | Suggested change |
| ------ | ------------------------------- | ---------------- | -------------------------------------------------------------------------------------------------------------------------------------- | ---------------- |
| 146 | Action wrapper `<div>` | keep with reason | Layout-only wrapper around shared `Button` components. | — |
| 156 | Arrow `<span>` | keep with reason | Decorative inline glyph is hidden from assistive technology. | — |
| 79–143 | Preview and preference controls | keep with reason | Uses shared `FormField`, `Select`, `LanguageSelector`, `SectionContainer`, and `SectionRow`; no raw interactive element is introduced. | — |

## D2 — Arbitrary Tailwind Value vs Token

| Line | Value | Verdict | Reason | Suggested change |
| --- | --- | --- | --- | --- |
| — | None | keep with reason | All composition classes come from shared detail-panel or setup tokens. | — |
| Line | Value | Verdict | Reason | Suggested change |
| ---- | ----- | ---------------- | ---------------------------------------------------------------------- | ---------------- |
| — | None | keep with reason | All composition classes come from shared detail-panel or setup tokens. | — |

## D3 — Hardcoded Sizes / Colors

| Line | Value | Verdict | Reason | Suggested change |
| --- | --- | --- | --- | --- |
| — | None | keep with reason | Sizing and color are expressed through design-system props and semantic tokens. | — |
| Line | Value | Verdict | Reason | Suggested change |
| ---- | ----- | ---------------- | ------------------------------------------------------------------------------- | ---------------- |
| — | None | keep with reason | Sizing and color are expressed through design-system props and semantic tokens. | — |

## D4 — Accessibility

| Line | Element | Verdict | Reason | Suggested change |
| --- | --- | --- | --- | --- |
| 79–94 | Presentation selector | keep with reason | Shared `FormField` provides the visible label and `Select` receives the same localized accessible name; it is disabled during terminal persistence. | — |
| 96–143 | Preference selectors | keep with reason | Every shared selector receives its localized visible label as `ariaLabel`. | — |
| 147–166 | Terminal actions | keep with reason | Shared native-button primitives expose text labels and disabled/loading state. | — |
| Line | Element | Verdict | Reason | Suggested change |
| ------- | --------------------- | ---------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------- |
| 79–94 | Presentation selector | keep with reason | Shared `FormField` provides the visible label and `Select` receives the same localized accessible name; it is disabled during terminal persistence. | — |
| 96–143 | Preference selectors | keep with reason | Every shared selector receives its localized visible label as `ariaLabel`. | — |
| 147–166 | Terminal actions | keep with reason | Shared native-button primitives expose text labels and disabled/loading state. | — |

## D5 — Visual Patterns Observed

Expand Down
Loading
Loading