v2: Task-source port with local markdown as the first alternative

Aperta
#115 1 commento 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
5/5
Tempo stimato
Più di una settimana
Idoneità per principianti
25/100
Tipo di issue
Funzionalità
Chiarezza
Specificata chiaramente
Stato di attività
Tranquilla
Stack tecnologico
github, markdown, sqlite, typescript

Direzione di ricerca

The issue is explicitly parked for v2 and calls for an ADR before implementation. Start by reading ADRs 0007 and 0008, then inspect the current item source, item key, and repository label projection in the engine. Done means an ADR defines the tracker and code-host separation and a local markdown source is scoped as the first implementation slice.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Status: parked for v2

Future exploration. Revisit when a concrete non-GitHub source is needed, starting with an ADR that separates tracker and code-host concerns. This is not required for the current GitHub factory. The Board Task projection in #80 groups related work; it does not introduce this source port.

Original proposal

The run state (Run, Attempt, RunState in SQLite) is already usine's own. What is GitHub-shaped today:

  • The Event payload is GitHub's slice by design (ADR 0007), and loop if: expressions range over item.labels.nodes and friends.
  • StepResult facts name pull requests and GitHub comments.
  • RepositoryName is a GitHub owner/name; the tracker and the code host are the same axis.
  • The repository label projection lives inside @usine/engine.
  • Board lanes are labels (ADR 0008), and the item key encodes github.

The workflow-in-labels pattern (ready-for-agent, agent-in-progress, ready-for-review, review-passed) is the label-protocol authoring style ADR 0007 names. The engine does not depend on it; the loops do. ItemProjectionSource and the item key prefix identify the current source; they are not yet a source-independent service port.

What a task-source port needs:

  1. A TaskSource service: list changed items since a watermark, fetch one item's payload, write state back (labels, comments). GitHub, local markdown files, Linear, and Jira each implement it.
  2. An owned Task shape: id, origin, title, body, state, labels, links to branch and PR. Keep the source-native payload beside it so if: expressions keep fields like reviews.nodes and headRefOid.
  3. Separating the tracker axis from the code-host axis.
  4. Moving the repository label projection out of the engine into the GitHub layer.

Fully local: the runtime store, the local worker, and the instance folder are already local. Triggers and repository identity are not. A local stream reading tasks/*.md with frontmatter state from the instance repo, plus a local repository path, would make usine runnable with no GitHub at all, and it is the best test seam the engine could have.

Proposal: write the ADR first, then take the local markdown source as the first slice.

Lingua principale
TypeScript
Stelle
1
Fork
0
Merge medio
4h 26m
PR unite (30g)
280

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di basaltbytes/usine

Tutte le issue di basaltbytes/usine

Issue simili

Altre issue su TypeScript

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.