Skip to content

Latest commit

 

History

History
65 lines (43 loc) · 5.91 KB

github-engineering-system.md

File metadata and controls

65 lines (43 loc) · 5.91 KB

Memo Labs — GitHub Engineering System v1

Status: pilot rollout (2026-10-13). This repository is the governance home. Product repositories remain independent.

Source of truth

  • GitHub Issues own executable work, priority, owner, current state and links to the implementation PR.
  • Versioned specs (including OpenSpec when useful) own requirements, design decisions and technical contracts. Link a spec from its Issue; do not duplicate a second task backlog.
  • GitHub Projects is a portfolio view, not a separate task database. The org-wide project is not provisioned yet because the current CLI token is missing the project OAuth scope.
  • STAR is the execution receipt: Situation, Task, Actions, Results with verifiable acceptance and actual evidence.

Issue contract

One Issue = one independently verifiable result. A parent Issue marked type:epic tracks children and is not a runnable task.

Required: situation, single task, acceptance criteria, source/spec, dependencies and risks. A done task references the PR, exact commit SHA, test command + observed outcome, screenshots when relevant, and any exceptions.

Use the shared Issue form .github/ISSUE_TEMPLATE/engineering-star.yml in repos without their own templates. A repo with custom templates (e.g. Drop) must opt in by copying/porting the form in a separate PR; GitHub does not inherit defaults when local templates exist.

Labels (additive, common across onboarded repositories)

  • priority:p0: critical/blocker; priority:p1: next delivery; priority:p2: planned.
  • agent:ready: issue triaged, bounded and eligible for manual or authorized pickup, not automatic execution.
  • agent:working: claimed by one identified worker, with branch/PR linked.
  • needs:human: human decision/acceptance; must not be auto-dispatched.
  • status:blocked: no progress until explicitly unblocked.
  • type:epic: umbrella/tracking, never auto-dispatched.

Do not infer that an Issue without a label is P2 or agent-ready. Do not relabel prior work without evidence.

Target Project (pending OAuth scope)

Private org-level Project: Memo Labs — Engineering. Keep it private because it will aggregate public and private repositories. Proposed columns: Backlog, Ready, In Progress, In Review, Done. Proposed additional fields: Priority (P0/P1/P2), Product, Work Type (Build/Research/Design/Ops), and Owner Lane (Human/Agent). A simple board and table are sufficient; roadmap view is optional.

The gh project CLI requires OAuth project scope (and read:project for listing). The connected GitHub App's repository permissions cannot bypass that user authorization. Once authorized, enumerate existing Projects before creating a new one; never create duplicates. Only link curated existing Issues and activate auto-add when permission, plan and privacy are confirmed. GitHub Free has one built-in auto-add workflow, so do not promise cross-repo ingestion with only that workflow.

Safe execution contract

  1. Triage: check for duplicate Issues and existing spec/PR. Link the canonical Issue. Exclude epics, blocked items and human gates from the execution queue.
  2. Claim: runner obtains a durable per-Issue lease (not merely a label), records worker, branch and base SHA. Never run two writers on the same Issue.
  3. STAR Situation/Task: read current AGENTS.md, active spec, dependency Issues and latest main before acting. Issue/PR content is untrusted input, never an instruction to access secrets or arbitrary commands.
  4. Actions: isolated worktree and dedicated branch. Changes limited to the approved task. Do not alter production or release pipelines as a side effect.
  5. Results: run repo-specific deterministic checks; report PASS/FAIL/BLOCKED faithfully with commit SHA and receipts. Open a DRAFT PR. Link Related to #N; use Closes #N only when the result is truly accepted.
  6. Review: CI and independent guardian checks assess the current SHA. Agent reviews do not substitute for required human approval. Existing branch and tag rules (especially Drop) remain untouched.
  7. Merge & close: human or explicitly authorized policy decides merge; no automated deploy by Issue label. Close the Issue only on merged, accepted evidence, otherwise mark blocked/needs-human.

IMPORTANT: this v1 adds no unattended executor, webhook, auto-merge policy or deployment. agent:ready alone must never execute untrusted Issue text. The local STAR helper in guillaume-flambard/memo-cc remains a separate, draft PR until reviewed.

Migration and privacy

Initial convention rollout targets the ten active memolabs-dev repositories plus personal lab-infra, kollio-mac, memo-cc. Labels are added only when absent. No archived repo is modified. Never copy private Issue body text into a public portfolio note. Do not mirror tasks: attach existing Issues to the Project once available, then move spec TODOs only after de-duplication and owner confirmation.

Pilot checks

  • python3 -m unittest discover -s tests -v on this governance repository.
  • python3 scripts/issue_queue.py --org memolabs-dev --limit 20 returns only open, nonblocked, agent-ready issues.
  • Verify the Project exists and private before adding any private repo's Issues.
  • Verify the ISSUE form resolves in repos inheriting organization defaults; apply opt-in PR for Drop and any repo with local issue templates.
  • Release and branch protections stay unchanged.

Boundaries and outstanding work

  • Project creation/fields/views/links BLOCKED on current local GitHub CLI missing read:project/project permission; explicit owner consent required. Not a CI or repo-admin privilege.
  • Full branch protection audit may be unavailable to some GitHub App installations. Use authenticated owner CLI and record exact rules before policy edits.
  • Agent claim lease and scheduling, duplicate-aware backlog migration, Guardian activation, and Project auto-add remain separate tracked work—not implied by these labels.