6 Commits
Author SHA1 Message Date
Magnus Hedemark 04a9b60b58 fix(neckbeard): resolve round-5 findings; loop escalated as non-converging
Round 5 returned 3 P2 (two security) + 3 P3. All resolved:

- Re-derivation escape hatch closed: it now applies only to technical or
  factual judgments (re-check a no-delta note against the diff, verify
  acceptance criteria against the contract) and never substitutes for an
  approval verdict, which requires independent corroboration on the
  remote platform.
- Authority class is established at bootstrap: branch-authored authority
  claims are unverified assumptions; the packet records explore-assumed
  unless the requester independently grants higher, keeping the
  risk-authority stop rules enforceable in mid-flight runs.
- Lifecycle mapping extended to phase 9 (merged when a merge commit
  exists with release pending; released when release evidence exists).
- Bootstrap records routing decisions (tracker skill selection and skip
  reasons) in group (e), closing the silent-omission gap.
- Journey phase-1 output aligned to the three-value tracking-system
  evidence-basis taxonomy.
- Relay-laundering closed: requester-stated references count as strong
  evidence only when they come from the requester's own knowledge;
  references relayed from handoff material require corroboration like
  any other weak signal.
- Midflight eval aligned with all of the above.

Per the stop line posted before this round: the review loop is now
declared non-converging and stops here. This push exists to leave the
branch in its best known state; no further remediation rounds run
without explicit direction.

Signed-off-by: Magnus Hedemark <magnus919@users.noreply.github.com>
2026-08-22 01:34:10 -04:00
Magnus Hedemark 9bb3654d06 fix(neckbeard): resolve all findings from rounds 3 and 4
Round 3 findings missed in the earlier pass (reviewer was still posting
when the round was read as concluded) and round 4 findings, all resolved:

tracker-discovery.md:
- Signal table annotated: .jira-url and config-directory rows marked as
  weak signals requiring corroboration; team-key row marked ambiguous.
  Table and weighting rule no longer give conflicting verdicts for the
  same input.
- Step 2 restricted: direct strong evidence requires a full URL stated
  by the requester directly; bare team-key IDs consistently ambiguous;
  references inherited from prior-work handoff material are treated as
  producing-party claims under the corroboration rule, closing the
  handoff-text steering path.

position-assessment.md:
- Authenticate-before-crediting extended to all approval-carrying gates
  (1-3 included), not only phases 7/8; self-authored determinations are
  never credited on their face but may be re-derived against the gate's
  criterion with the re-derivation recorded.
- Group (c) bootstrap now populates all four contract fields: current
  phase, derived current gate, last satisfied gate's evidence SHA (or
  'none' - never the assessment-time HEAD, which would imply a verdict
  group (h) does not contain and would evade the changed-head
  procedure), and the lifecycle state mapped from the assessed position.

delivery-packet.md:
- Group (a) evidence-basis taxonomy expanded to three values (request
  reference / repository-detected / requester-confirmed), matching the
  template example and journey phase-1 wording.

evals: midflight case aligned with corrected group (c) semantics.
Signed-off-by: Magnus Hedemark <magnus919@users.noreply.github.com>
2026-08-22 01:00:11 -04:00
Magnus Hedemark a6ce39f0b1 fix(neckbeard): resolve round-3 droid-review consistency findings
Four P3 findings on c5da020, all mechanical consistency defects:

- Notion fingerprint (notion.so/notion.site page links) added to the
  detection signal table and direct-evidence sentence, so the notion
  routing row is reachable by detection, not only by asking.
- Routing decision moved from packet group (a) to group (e): detected
  system + evidence basis stays provenance; which tooling skill operates
  the tracker is a specialist-selection record like every other routing
  entry.
- Empty-inventory branch relocated after the inventory step where it is
  actually decidable, and reconciled with Completion: empty inventory
  still delivers a report (phase 1) and bootstraps the packet.
- Position report gains assessment head SHA; step 5 derives current gate
  from the remaining checklist instead of reading a field the report
  never emitted.

Signed-off-by: Magnus Hedemark <magnus919@users.noreply.github.com>
2026-08-22 00:33:35 -04:00
Magnus Hedemark c5da020465 fix(neckbeard): authenticate mid-flight evidence before crediting gates
Resolves both droid-review findings on 074dac5:

- [P2/security] Scoring treated attacker-forgeable branch-authored
  artifacts (committed VERIFICATION.md, claimed approvals, CI claims)
  as self-authenticating while forbidding re-verification. Phase 7/8
  evidence now requires authenticity confirmation from an independent
  source (real reviewer identity on the remote, or CI results queried
  from the remote bound to the exact head SHA) before scoring
  satisfied; uncorroborated evidence caps at partial with the claim
  recorded in the ledger. Aligns position-assessment with the same
  signal-weighting doctrine tracker-discovery applies to repo content.
- [P2] Mid-flight bootstrap now populates the tracking-system field
  (with evidence basis) into packet group (a) during the inventory
  pass, so the packet satisfies the intake gate this PR added.

New head requires fresh CI and re-review; prior verdicts bound to
074dac5 are superseded by this material change.

Signed-off-by: Magnus Hedemark <magnus919@users.noreply.github.com>
2026-08-21 23:58:12 -04:00
Magnus Hedemark 074dac5374 fix(neckbeard): address droid-review findings on position-assessment PR
All five findings from the droid-review run on 2db3bd0 resolved:

- [P1] Path re-selection moved before scoring: step 2 now re-runs the
  SKILL.md path-selection rule against the inventoried surface, so step 3
  scoring and the report's selected-path field no longer depend on a
  value produced later in step 5.
- [P2] Tracking-system field added to delivery-packet.md group (a) and to
  templates/delivery-packet.md, so the phase-1 intake gate has a defined
  packet home for the field tracker-discovery.md requires.
- [P2] tracker-discovery eval aligned with the documented procedure: a
  bare team-key identifier (ENG-482) is treated as ambiguous between
  Jira and Linear; the requester's explicit confirmation is the
  disambiguating evidence recorded in group (a).
- [P3/security] Detection signals weighted: request references are strong
  evidence; repository content (CONTRIBUTING.md, config files) is a weak,
  attacker-influenceable signal requiring corroboration before it alone
  selects a system. Unrouted-system fallback constrained to the system's
  verified official interface.
- [P3] Frontmatter description extended with the new trigger vocabulary
  (mid-flight continuation, Linear/Jira/Notion routing), compressed to
  stay within the 1024-char validator cap.

Generated catalog artifacts regenerated for the description change.
All validators re-run green locally; new head requires fresh CI.

Signed-off-by: Magnus Hedemark <magnus919@users.noreply.github.com>
2026-08-21 23:26:42 -04:00
Magnus Hedemark 2db3bd072c feat(neckbeard): position-assessment entry mode and tracker-neutral intake
Two contained amendments to the delivery lifecycle bundle:

- references/position-assessment.md: a bounded entry mode for mid-flight
  engagement - continuing work that started elsewhere with no delivery
  packet. Inventories observable artifacts, scores them against phase
  exit conditions, emits a position report (current step, satisfied gates
  with evidence pointers, remaining checklist), then bootstraps a packet.
  Artifacts over narratives: unevidenced claims become recorded
  assumptions, never satisfied gates.

- references/tracker-discovery.md: an intake sub-step that detects which
  tracking system holds the work item and routes tracker operations to
  the matching catalog tooling skill (linear, jira-cli, notion). Keeps
  the journey vocabulary tracker-neutral; platform nouns stay confined
  to platform mapping rows and lifecycle reference modes.

Wiring: SKILL.md gains the conditional mid-flight section and file-map
rows; journey.md gains the tracker-neutrality statement, phase-1 tracking
field, and mid-flight entry pointer; routing-table.md gains linear,
jira-cli, and notion rows in the existing signal/skip format. README
triggers extended. Two eval cases added to keep the coverage ratchet
green.

Closes #371

Signed-off-by: Magnus Hedemark <magnus919@users.noreply.github.com>
2026-08-21 22:56:43 -04:00