Spesifiser generisk dispatch: navnekonvensjon erstatter hardkodet mapping
Portvokteren dispatcher via konvensjon (synops-{job_type}) med
--payload-json. Verktøyet parser payload selv. Nytt verktøy krever
ingen rekompilering — bare binary i PATH og riktig job_type.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
82c8f01c31
commit
bde4285c15
1 changed files with 23 additions and 0 deletions
|
|
@ -66,13 +66,36 @@ synops-transcribe --cas-hash abc123 --model medium
|
||||||
|
|
||||||
## Konvensjoner for CLI-verktøy
|
## Konvensjoner for CLI-verktøy
|
||||||
|
|
||||||
|
- **Navnekonvensjon:** `synops-<verb>` (f.eks. `synops-transcribe`)
|
||||||
- **Input:** args + stdin + env-variabler (DATABASE_URL, CAS_ROOT)
|
- **Input:** args + stdin + env-variabler (DATABASE_URL, CAS_ROOT)
|
||||||
|
- **Payload-modus:** `--payload-json <json>` for jobbkø-dispatch
|
||||||
|
(verktøyet parser selv, portvokteren trenger ikke kjenne argumentene)
|
||||||
- **Output:** stdout (strukturert — JSON eller markdown)
|
- **Output:** stdout (strukturert — JSON eller markdown)
|
||||||
- **Feilhåndtering:** stderr for feilmeldinger, exit-kode != 0 ved feil
|
- **Feilhåndtering:** stderr for feilmeldinger, exit-kode != 0 ved feil
|
||||||
- **Ingen tilstandsendring uten flagg:** lesing er default, skriving krever
|
- **Ingen tilstandsendring uten flagg:** lesing er default, skriving krever
|
||||||
`--write` eller `--apply` (sikkerhetsnett for Claude)
|
`--write` eller `--apply` (sikkerhetsnett for Claude)
|
||||||
- **Idempotent der mulig:** kan kjøres flere ganger uten sideeffekter
|
- **Idempotent der mulig:** kan kjøres flere ganger uten sideeffekter
|
||||||
|
|
||||||
|
## Generisk dispatch
|
||||||
|
|
||||||
|
Portvokteren trenger null konfigurasjon per verktøy. Bare en
|
||||||
|
navnekonvensjon:
|
||||||
|
|
||||||
|
```rust
|
||||||
|
let binary = format!("synops-{}", job.job_type);
|
||||||
|
let mut cmd = Command::new(&binary);
|
||||||
|
cmd.arg("--payload-json").arg(&job.payload_json);
|
||||||
|
```
|
||||||
|
|
||||||
|
`job_type: "transcribe"` → `synops-transcribe --payload-json '{...}'`.
|
||||||
|
Verktøyet parser payload selv. Nytt verktøy = legg binary i PATH,
|
||||||
|
bruk riktig `job_type` i køen. Ingen rekompilering av portvokteren.
|
||||||
|
|
||||||
|
`cli_tool`-noder i PG bærer metadata (timeout, cpu_weight,
|
||||||
|
dokumentasjon) — men ikke dispatch-logikk. Portvokteren leser
|
||||||
|
timeout og cpu_weight fra noden, men selve invokasjon er
|
||||||
|
konvensjonsbasert.
|
||||||
|
|
||||||
## Migrasjonsstrategi
|
## Migrasjonsstrategi
|
||||||
|
|
||||||
Ikke en big-bang refaktor. Gradvis utbryting:
|
Ikke en big-bang refaktor. Gradvis utbryting:
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue