Skip to content

[codex] Add Linear issue type decision guide#97

Merged
cjarguello merged 2 commits into
mainfrom
codex/linear-issue-type-decision-guide
May 9, 2026
Merged

[codex] Add Linear issue type decision guide#97
cjarguello merged 2 commits into
mainfrom
codex/linear-issue-type-decision-guide

Conversation

@cjarguello
Copy link
Copy Markdown
Member

Summary

  • Add the canonical Linear issue type decision guide at linear/docs/process/linear_issue_type_decision_guide_v1.md.
  • Add minimal pointers from the active Linear operating model, operating guide, evidence contract, and changelog.
  • Make issue type assignment evidence-based, keep Design narrow, and make Release rare.

Validation

  • git status --short
  • git diff --cached --check
  • grep -R "linear_issue_type_decision_guide_v1" -n linear/docs/process
  • checked touched files for stale /Users/cjarguello or /cjar... paths

Notes

  • Did not mutate live Linear issues.
  • Pre-existing unrelated local edits were left unstaged: audit_ctl.sh, config/repo_registry.tsv, and tests/test_audit_tools.sh.

@taylor-01 taylor-01 force-pushed the codex/linear-issue-type-decision-guide branch from d88707b to 5eb2aa4 Compare May 5, 2026 08:45
Copy link
Copy Markdown
Member Author

Follow-up update after CJ clarification:

  • Tightened Feature vs Chore: upgraded existing capability with new real functionality is Feature.
  • Tightened Bug vs Chore: if expected behavior did not work and evidence exists, classify as Bug even if the implementation fix is refactor/hardening.
  • Tightened Plan: parent mini-project/epic with real subtickets; not checklist or vague-spec bucket.
  • Tightened Design: serious design artifact/approval only; split design and implementation when both are needed.
  • Added tie-breaker matrix and a short routing note separating issue type from QA/PM routing.
  • Recorded routing-rule seed on BIT-178 without changing assignee/delegate/status.

@taylor-01 taylor-01 force-pushed the codex/linear-issue-type-decision-guide branch from 5eb2aa4 to 2299401 Compare May 8, 2026 08:35
Copy link
Copy Markdown
Member Author

Follow-up update: converted the issue-type guide from prose-first to machine-readable-first.

Added:

  • linear/contracts/linear_type_classifier_v1.json as the automation source for issue type + default routing decisions.
  • linear/docs/process/linear_type_classifier_corrections_v1.md as the single human correction / learning log.
  • Linear Classification intake block requirement in the guide/evidence contract.
  • LinearBotEngine classifier parsing/enforcement so Ready/In Progress gate fails closed when the intake block is missing or the label disagrees with the deterministic classifier.
  • Tests covering missing intake, type mismatch, and PM-skip routing for technical chores.

Validation:

  • python3 -m json.tool linear/contracts/linear_type_classifier_v1.json >/dev/null
  • python3 -m unittest linear.tests.test_engine
  • git diff --check

@taylor-01 taylor-01 force-pushed the codex/linear-issue-type-decision-guide branch from 2299401 to 91eefdd Compare May 8, 2026 08:41
Copy link
Copy Markdown
Member Author

Hardening update from Pauli review findings:

  • Engine now loads/interprets linear/contracts/linear_type_classifier_v1.json for required intake fields, output values/aliases, boolean fields, type decision order, and routing defaults instead of duplicating the classifier logic entirely in Python.
  • Invalid intake now fails closed: unknown Output values and non-yes/no booleans trigger needs-type + Backlog instead of falling through to Chore.
  • Strict classifier enforcement is limited to Ready gate so existing In Progress issues are not back-migrated without a migration pass.
  • Routing defaults are documented as advisory until wired to label/status automation.
  • Added tests for invalid intake, In Progress grandfathering, and contract parity.

Validation:

  • python3 -m json.tool linear/contracts/linear_type_classifier_v1.json >/dev/null
  • python3 -m unittest linear.tests.test_engine
  • git diff --check

@taylor-01 taylor-01 force-pushed the codex/linear-issue-type-decision-guide branch from 91eefdd to 0db34b2 Compare May 8, 2026 09:12
Copy link
Copy Markdown
Member Author

Linear follow-up / Icebox defaulting update:

Observed while creating follow-up issues that state: "Backlog" by name returned new Product Development issues in Icebox 🧊. Correcting by concrete Backlog status ID worked.

Actions taken:

Validation re-run:

  • python3 -m json.tool linear/contracts/linear_type_classifier_v1.json >/dev/null
  • python3 -m unittest linear.tests.test_engine
  • git diff --check

Copy link
Copy Markdown
Member Author

Fixup: PR #97 now includes the classifier-corrections fixture + test so the required validation command passes:

  • linear/tests/fixtures/linear_type_classifier_corrections_v1.json
  • linear/tests/test_classifier_corrections.py
  • helper script linear/scripts/record_type_classifier_correction.py

Commit: b8106e7 (cherry-picked from the BIT-441 work so python3 -m unittest linear.tests.test_engine linear.tests.test_classifier_corrections succeeds).

@taylor-01 taylor-01 force-pushed the codex/linear-issue-type-decision-guide branch from b8106e7 to 67881f8 Compare May 8, 2026 11:36
Copy link
Copy Markdown
Member Author

Cleanup update: investigated the lingering local audit/hygiene edits. They were an older uncommitted copy/subset of upstream origin/main commit e0d8053 (Fix T3 cleanup top-level truth). Rebased this PR onto origin/main and force-pushed.

Current head: 67881f8.
Validation now passes:

  • python3 -m json.tool linear/contracts/linear_type_classifier_v1.json >/dev/null
  • python3 -m unittest linear.tests.test_engine
  • python3 -m unittest linear.tests.test_engine linear.tests.test_classifier_corrections
  • git diff --check

Working tree is clean; no lingering uncommitted audit/hygiene edits remain.

@taylor-01 taylor-01 marked this pull request as ready for review May 9, 2026 05:44
@taylor-01 taylor-01 requested a review from a team as a code owner May 9, 2026 05:44
@cjarguello cjarguello merged commit 306e749 into main May 9, 2026
1 check passed
@taylor-01 taylor-01 deleted the codex/linear-issue-type-decision-guide branch May 9, 2026 05:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants