forge-orkes 0.55.0 → 0.58.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -69,6 +69,36 @@ verification:
69
69
  e2e_soft_cap: 10 # M9: advisory cap on e2e:true stories per milestone. Reviewing warns when exceeded. Soft — never blocks.
70
70
  # Advisory mode: commands already failing before Forge started run but don't block — warn only.
71
71
 
72
+ # forge: # Framework behavior toggles (all optional; absent → defaults).
73
+ # validation_event: in_session_signoff
74
+ # # How a merged unit becomes VALIDATED in the derived release_state
75
+ # # ladder (unmerged → merged → validated; computed by
76
+ # # .claude/hooks/forge-release-fold.sh, never stored). Two bindings:
77
+ # # in_session_signoff (DEFAULT — absent means this): today's behavior,
78
+ # # byte-for-byte — validated derives from the operator's in-session
79
+ # # sign-off (signoff/<unit> tag, current.human_verified, or the
80
+ # # legacy-complete grandfather).
81
+ # # promotion_approval (opt-in): validated derives from a HOST-recorded
82
+ # # promotion — a CI-signed tag minted by the deploy pipeline's
83
+ # # Environment-approved job (the Track B coupling: that job must emit
84
+ # # the tag below byte-exactly). The fold verifies it OFFLINE
85
+ # # (git tag -v; no network) and checks CONTAINMENT: every unit whose
86
+ # # landed sha is an ancestor of the approved deploy sha is validated.
87
+ # # B5 CONSEQUENCE: choosing promotion_approval changes when `complete`
88
+ # # can be set — close becomes machine-verified (no in-session sign-off);
89
+ # # the human gate moves to the deploy boundary (derived validated at
90
+ # # promotion). Default binding keeps today's close gate byte-for-byte.
91
+ # # This key sits on the step-2 protected-paths hold list: a diff
92
+ # # flipping the mode blocks auto-merge for operator review — changing
93
+ # # it is an operator decision, never an agent edit (F4/F5).
94
+ # promotion: # Read only when validation_event: promotion_approval.
95
+ # tag_pattern: "promotion/{sha}" # FROZEN 2026-07-16. {sha} = the full deploy sha the promotion job
96
+ # # approved (not per-unit). The producing side must mint it byte-exactly —
97
+ # # a pattern drift here is a silent never-validates bug.
98
+ # allowed_signers: "" # Path to the CI key's allowed-signers file (committed, PUBLIC keys
99
+ # # only — the private key lives host-side, in the deploy Environment).
100
+ # # Empty ⇒ git config gpg.ssh.allowedSignersFile.
101
+
72
102
  success_criteria: # How do we know we're done?
73
103
  - "" # e.g., "User can create and edit posts"
74
104
  - "" # e.g., "All tests pass with >80% coverage"
@@ -90,28 +120,28 @@ models:
90
120
  securing: sonnet # Security analysis needs depth
91
121
  debugging: sonnet # Investigation needs solid reasoning
92
122
  discussing: sonnet # Conversation needs natural fluency
93
- # by_complexity: # Per-task complexity -> model (M24). Overrides skills.X — see FORGE.md Model Routing Precedence.
94
- # trivial: haiku
95
- # standard: sonnet
96
- # complex: opus
97
-
98
- orchestration: # M10 multi-agent orchestration (experimental). Only consulted when M10 is installed.
99
- # auto: true # false = never auto-route Standard/Full through orchestrating (install = consent; set false to opt out).
100
- # worktree_root: "../<repo>-worktrees" # Where Forge worktrees live. Default: ../<repo-basename>-worktrees (per-repo sibling — see ADR-010).
101
- # Relative paths resolve against the REPO ROOT (not shell cwd). Absolute paths and a leading ~ are honored.
102
- # Editing only affects newly created worktrees; live worktrees keep their recorded lifecycle.worktree_path.
103
- # Common overrides:
104
- # ~/.forge/worktrees/<repo> — central home dir, keeps the parent dir of the repo clutter-free
105
- # ../wt/<repo> — shared dir with per-repo subfolder
106
- # Do NOT point this inside the repo working tree (file watchers + indexers will recurse into the worktree).
107
123
 
108
- forge: # Forge framework-level settings (all optional)
109
- # upstream_repo: "https://github.com/zayneupton/forge"
110
- # Where framework-scope desire paths (ADR-012) file issues when `gh`
111
- # is available. Default if absent: the canonical Forge repo, so this
112
- # works configless. Uncomment only to retarget a fork/mirror.
113
- # worktree_rebase_check: true # Opt-in: when forge boots inside a worktree, diff .forge/ vs main and
114
- # offer to rebase/restore shared-mutable files (FORGE.md State Ownership).
124
+ # notion: # OPT-IN work-management adapter INERT by default. Projects Forge
125
+ # # milestones/streams/packages onto a Notion board and reads human triage/
126
+ # # priority proposals back. Activates only with BOTH this block (enabled: true)
127
+ # # AND a Notion MCP server in .mcp.json; absent either fully inert, zero
128
+ # # behavior change. Git (.forge/) stays source of truth — Notion is a
129
+ # # projection + inbox, never symmetric sync (ADR-019). Mirrors the opt-in
130
+ # # shape of forge.beads_integration.
131
+ # enabled: false # Master switch. false/absent → adapter never runs.
132
+ # database_id: "" # Id of the single "Forge Work Items" Notion database (all layers as rows).
133
+ # properties: # OPTIONAL rename map: Forge property → your Notion column name. Omit → defaults.
134
+ # Forge ID: "Forge ID" # Binding key — agent-owned, set once, never overwritten.
135
+ # Status: "Status" # Agent-owned, overwritten each projection.
136
+ # Priority: "Priority" # Human-owned — read as proposal, never overwritten.
137
+ # intake_filter: # OPTIONAL (FR-116): gate which Forge-ID-less pages pull_inbox() treats as
138
+ # # triage requests, so one board can mix agent items + arbitrary human pages.
139
+ # # Absent → every Forge-ID-less page is a candidate (FR-114 base). One of:
140
+ # property: "Type" # {property, equals} — page's <property> equals <value>
141
+ # equals: "Request"
142
+ # # property: "Type" # {property, in} — page's <property> is one of <values>
143
+ # # in: ["Request", "Bug"]
144
+ # # view: "Triage" # {view} — pages in the named saved Notion view
115
145
 
116
146
  risks: # What could go wrong?
117
147
  - risk: ""
@@ -1,25 +1,52 @@
1
- # Forge Global State — Cross-Milestone Index (DERIVED)
2
- #
3
- # This file is REGENERATED by the `forge` skill's rollup step from
4
- # state/milestone-*.yml. Do NOT hand-edit it, and do NOT add per-milestone
5
- # cursor data or narrative here — that lives in state/milestone-{id}.yml.
6
- #
7
- # Worktree / parallel agent sessions MUST NOT write this file. Editing only the
8
- # per-milestone files (different files = no git conflict) and regenerating this
9
- # registry from them is what makes Forge state safe across many worktrees.
10
- #
11
- # Rollup is deterministic + idempotent: regenerating from the same milestone
12
- # files yields identical bytes, so concurrent regenerations never conflict.
13
-
14
- milestones: # Registry rolled up from state/milestone-{id}.yml
1
+ # Forge Global State — Cross-Milestone Index
2
+ # Auto-managed by agents. Do not edit manually unless recovering from errors.
3
+ # This file tracks global concerns. Per-milestone state lives in state/milestone-{id}.yml.
4
+
5
+ milestones: # Active milestones and their high-level status
15
6
  - id: 1
16
- name: "" # mirrors milestone-{id}.yml milestone.name
17
- status: not_started # mirrors current.status: not_started | active | deferred | complete
18
- last_updated: null # mirrors current.last_updated — used for resume default selection
19
-
20
- # NOTE — removed from this file by design (M11). (Tokens below are spaced to
21
- # avoid tripping naive legacy-detection greps that scan for "<key>:".)
22
- # metrics — had zero writers; derive from `git log` if ever needed.
23
- # desire-paths — now append-only files under state/desire-paths/ (one per
24
- # observation) so concurrent agents never collide. Occurrence
25
- # counts are derived by globbing that directory, not mutated here.
7
+ name: "" # Human-readable milestone name from roadmap
8
+ status: not_started # not_started | active | deferred | complete
9
+ last_updated: null # ISO 8601 timestamp — used for resume default selection
10
+ release_state: unknown # DERIVED — fold output, git-ignored cache only
11
+
12
+ metrics:
13
+ total_commits: 0
14
+ total_files_modified: 0
15
+ verification_passes: 0
16
+ verification_failures: 0
17
+ checkpoints_hit: 0
18
+
19
+ # Desire Paths — Patterns in how the framework is actually used
20
+ # Collected automatically by agents. Reviewed during verification retrospective.
21
+ # When a pattern appears 3+ times, it becomes a candidate for framework evolution.
22
+ # Desire paths are GLOBAL — they track framework usage across all milestones.
23
+ desire_paths:
24
+ deviation_patterns: [] # Repeated Rule 1/2/3 deviations (same type, same area)
25
+ # - pattern: "" # e.g., "Rule 2: missing null checks in API handlers"
26
+ # occurrences: 0
27
+ # first_seen: null
28
+ # last_seen: null
29
+
30
+ tier_overrides: [] # User overriding auto-detected tier
31
+ # - detected: "" # What Forge detected
32
+ # overridden_to: "" # What user chose instead
33
+ # reason: "" # Why (if stated)
34
+
35
+ skipped_steps: [] # Steps users consistently skip or rush through
36
+ # - step: "" # e.g., "constitutional gate check"
37
+ # skill: ""
38
+ # times_skipped: 0
39
+
40
+ recurring_friction: [] # Same problem appearing across sessions
41
+ # - description: "" # e.g., "Design system violations in form components"
42
+ # occurrences: 0
43
+ # related_files: []
44
+
45
+ agent_struggles: [] # Tasks where agents consistently fail or need retries
46
+ # - task_type: "" # e.g., "Responsive layout implementation"
47
+ # failure_pattern: ""
48
+ # occurrences: 0
49
+
50
+ user_corrections: [] # User correcting agent output in the same way repeatedly
51
+ # - correction: "" # e.g., "Always adds 'use client' directive"
52
+ # occurrences: 0