docs(agents): de-alkgit the copied process scaffolding

The .opencode agent definitions and docs/sdd_process.md were copied
verbatim from alkgit; replace the stale project references with
alkssh-shaped ones:

- sdd_process.md: title line named @alkdev/alkgit
- coordinator.md: example spawn prompt named the project and carried
  alkgit constraints (pure protocol crate, gix, feature list)
- implementation-specialist.md: conventions 7-9 were alkgit's
  (gitoxide/no-MPL, sha256/acme features, repo-public auth wording);
  now russh-owns-the-wire, fail-closed mapping features, key reuse
- architect.md: deferral examples named alkgit-admin and the alkhttp
  git-feature shape
- poc-specialist.md: standalone-POC path example /workspace/alkgit-poc1

Verification: docs-only change
This commit is contained in:
glm-5.3-flash committed 2026-10-25 05:32:24 +00:00
1 parent 7e9b22951a
commit 2340738a19
5 files changed
+23 -22

No files matched your search

+5 -5
View File
@@ -330,7 +330,7 @@ A decision should be `deferred(scope)` when:
- The use case isn't concrete (e.g., "we don't know what the admin API - The use case isn't concrete (e.g., "we don't know what the admin API
will need from the call protocol") will need from the call protocol")
- The options depend on something that doesn't exist yet (e.g., - The options depend on something that doesn't exist yet (e.g.,
"depends on the alkhttp git-feature shape") "depends on the sftp mapping shape, which is alkfs's design question")
- The trade-off requires data that can only come from implementation - The trade-off requires data that can only come from implementation
(e.g., "need performance benchmarks to choose between X and Y") (e.g., "need performance benchmarks to choose between X and Y")
- The decision is genuinely not needed for the current scope (e.g., "the - The decision is genuinely not needed for the current scope (e.g., "the
@@ -374,10 +374,10 @@ A decision should be `deferred(unclear)` when:
(implies it's decided). (implies it's decided).
2. **State the blocking condition** (`deferred(scope)`) or 2. **State the blocking condition** (`deferred(scope)`) or
**investigation target** (`deferred(unclear)`) — what specific thing **investigation target** (`deferred(unclear)`) — what specific thing
would unblock this? Be concrete: "blocked on: alkgit-admin crate spec would unblock this? Be concrete: "blocked on: the alkfs sftp-mapping
exists" or "investigation: work through 2+ example git-over-ssh use spec exists" or "investigation: work through 2+ example git-over-ssh
cases (clone and push) to see how identity + repo resolution + use cases (clone and push) to see how identity + auth + the
pkt-line session compose." exec/subsystem channel mapping compose."
3. **State the impacts** — what does this block downstream? Be 3. **State the impacts** — what does this block downstream? Be
specific: "blocks the http endpoint because receive-pack needs specific: "blocks the http endpoint because receive-pack needs
unbuffered POST ingestion" not "blocks the http crate." This is the unbuffered POST ingestion" not "blocks the http crate." This is the
+7 -6
View File
@@ -192,7 +192,7 @@ also include:
Example prompt template: Example prompt template:
``` ```
You are an implementation specialist for the @alkdev/alkgit project. You are an implementation specialist for the @alkdev/alkssh project.
Your task: {{task}} Your task: {{task}}
@@ -205,15 +205,16 @@ Your task: {{task}}
7. Push: git push origin $(git branch --show-current) 7. Push: git push origin $(git branch --show-current)
8. Notify: worktree({action: "notify", args: {message: "Task completed: {{task}}. <brief summary>", level: "info"}}) 8. Notify: worktree({action: "notify", args: {message: "Task completed: {{task}}. <brief summary>", level: "info"}})
Key project constraints (@alkdev/alkgit): Key project constraints (@alkdev/alkssh):
- Pure protocol crate: single `alkgit` at repo root (ADR-010); no - russh-wrapped SSH adapter over alkcall channels (family ADR-003);
workspace, no binary, no front-door crates no in-family SSH framing — russh owns the wire
- Every channel-type mapping is a cargo feature; unfeatured channel
opens decline fail-closed (a git-only build serves no shell)
- Keys flow through alkvault-backed sources; never env vars
- Rust: use cargo build, cargo clippy, cargo fmt, cargo test - Rust: use cargo build, cargo clippy, cargo fmt, cargo test
- No comments in code - No comments in code
- thiserror for library error types; no panics in library code - thiserror for library error types; no panics in library code
- Feature flags for optional surface (gix default-on, sha256)
- Async via tokio runtime - Async via tokio runtime
- gitoxide (gix) for git storage/wire primitives; never shell out to git
``` ```
### Partial Generation Spawning ### Partial Generation Spawning
@@ -231,15 +231,15 @@ rules (summary — AGENTS.md wins on any conflict):
ADRs for the current list per crate). ADRs for the current list per crate).
7. **Visible-surface = authorized-surface** — use alkcall's model: 7. **Visible-surface = authorized-surface** — use alkcall's model:
`AccessControl` on every op; `Visibility::Internal` ops are never `AccessControl` on every op; `Visibility::Internal` ops are never
wire-callable. No unauthenticated endpoints unless a repo is explicitly wire-callable. No unauthenticated endpoints; every capability the
public. wire can reach must be explicitly granted.
8. **gitoxide for git primitives** — storage and pkt-line come from gix 8. **russh owns the SSH wire** — no in-family SSH framing (family
crates; never shell out to the `git` binary in the serving path; never ADR-003); protocol asks to russh upstream, never silently absorbed.
copy code from MPL-2.0-licensed reference projects (see Keys flow through alkvault-backed sources, never env vars.
`docs/research/reference-policy.md`). 9. **Feature flags** — every channel-type mapping is a cargo feature
9. **Feature flags** — optional surface is feature-gated (`sha256`, and declines unfeatured channel opens fail-closed; base crate
`acme`); base crates compile lean. Verify both `cargo test` (default) compiles lean. Verify both `cargo test` (default) and
and `cargo test --all-features` pass if features are added. `cargo test --all-features` pass if features are added.
10. **Naming conventions** — Rust standard: `snake_case` for 10. **Naming conventions** — Rust standard: `snake_case` for
functions/variables/modules, `PascalCase` for types/traits, functions/variables/modules, `PascalCase` for types/traits,
`SCREAMING_SNAKE_CASE` for constants. `SCREAMING_SNAKE_CASE` for constants.
+1 -1
View File
@@ -55,7 +55,7 @@ worktree({action: "status"}) → Show worktree git status
## Your Environment (standalone mode) ## Your Environment (standalone mode)
There is no worktree tool mapping. Your working directory is the scratch There is no worktree tool mapping. Your working directory is the scratch
project root (e.g. `/workspace/alkgit-poc1`); create it with `cargo new` or project root (e.g. `/workspace/alkssh-poc1`); create it with `cargo new` or
similar if it doesn't exist. Do not touch files outside that directory and similar if it doesn't exist. Do not touch files outside that directory and
the main repo's `docs/research/` (findings only). the main repo's `docs/research/` (findings only).
+1 -1
View File
@@ -2,7 +2,7 @@
## Overview ## Overview
This document defines the SDD process for the @alkdev/alkgit project. It This document defines the SDD process for the @alkdev/alkssh project. It
leverages: leverages:
- **OpenCode CLI** as the agent execution environment - **OpenCode CLI** as the agent execution environment