Skip to content

[HYPERSHELL-301] Agentic build chain spec + build-pipeline component - #250

Draft
markturansky wants to merge 6 commits into
mainfrom
feat/HYPERSHELL-301-agentic-build-pipeline
Draft

[HYPERSHELL-301] Agentic build chain spec + build-pipeline component#250
markturansky wants to merge 6 commits into
mainfrom
feat/HYPERSHELL-301-agentic-build-pipeline

Conversation

@markturansky

Copy link
Copy Markdown
Collaborator

Summary

Draft for review of the spec (implementation follows on this branch).

Adds specs/tooling/build/agentic-build-chain.spec.md (HYPERSHELL-301): a behavior contract that recasts the deterministic full-stack-pipeline skill as a composable agentic build chain. Each workflow step becomes a typed node in a dependency-ordered graph, and each node's model is bound by configuration, not code — mechanical/tool-only steps run cheap/no model, reasoning steps run a deep model. The same graph runs under many profiles; deterministic, model-independent gates hold correctness constant so runs can be compared on cost and latency.

What's in this PR

  • New specs/tooling/ domain + agentic-build-chain.spec.md (11 requirements AB-01..AB-11, scenarios, design decisions).
  • Registered in specs/index.spec.md (Tooling sub-spec + registry row).
  • .gitignore fix: the generic build/ ignore was swallowing specs/tooling/build/.

Key decisions to review

  • Skill stays source of truth; the chain executes it (with a drift check), never reimplements build/codegen logic.
  • Step classes → model tiers: tool-only (no model) / mechanical→small / reasoning→deep; bound by a profile (tiered/all-small/all-deep), provider-agnostic via LangChain.
  • Gates are deterministic and model-independent (existing make/go/generator/e2e commands) so cross-config comparison measures cost/latency at held-constant quality.
  • Per-run metrics (model, tokens, cost, latency, gate outcome) persisted and comparable across profiles.
  • Python/LangChain component at components/build-pipeline (container-friendly for later sandbox/cluster runs).

Follow-up (this branch)

  • Implement components/build-pipeline: step graph, profiles, gate runner, metrics, run state, CLI. Initial local target: Google Vertex.

Spec: specs/tooling/build/agentic-build-chain.spec.md

Add specs/tooling/build/agentic-build-chain.spec.md defining the
full-stack-pipeline workflow as a configurable agentic build chain:
typed step graph, per-step model tiers bound by profile, deterministic
model-independent gates, run metrics for cross-config comparison, and a
new Python/LangChain component under components/. Register it in the
spec index.
@coderabbitai

coderabbitai Bot commented Sep 4, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository YAML (base), Central YAML (inherited)

Review profile: CHILL

Plan: Team

Run ID: 19b14cc2-7b15-423c-8336-ef36dcf8e19f

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Comment @coderabbitai help to get the list of available commands.

user added 5 commits September 4, 2026 14:54
…LL-301

Python/LangChain executor for the full-stack-pipeline workflow:
- graph.py: pipeline as a typed step DAG mirroring the skill
- profiles + models: per-step model bound by profile (tiered/all-small/all-deep),
  Vertex provider, tool-only steps use no model
- gates: deterministic, model-independent acceptance commands
- engine: dependency-gated scheduler with retry/escalation, human checkpoints,
  dry-run, resumable run state
- metrics: per-run summary + cross-profile comparison
- cli: list/profiles/run/resume/runs/compare/check-drift
- tests: 28 deterministic-core unit tests (no LangChain/creds needed)
- README: local Vertex run instructions
…RSHELL-301

Add an 'anthropic-vertex' provider (ChatAnthropicVertex from
langchain-google-vertexai.model_garden) and repoint the tiered/all-small/
all-deep profiles at Claude models. LangChain does not read
ANTHROPIC_VERTEX_PROJECT_ID/CLOUD_ML_REGION, so build_chat_model resolves
project/region from those env vars (then GOOGLE_CLOUD_*), passing them
explicitly. README updated for the Claude-on-Vertex local run.
ChatAnthropicVertex wraps anthropic.AnthropicVertex, which langchain-google-vertexai
does not install. Add anthropic[vertex] so the default Claude-on-Vertex provider
constructs without a ModuleNotFoundError.
…PERSHELL-301

Unbounded anthropic[vertex]>=0.39 resolved to 1.3.0, whose messages.create
dropped the temperature kwarg that langchain-google-vertexai always sends,
breaking every ChatAnthropicVertex call with a TypeError. langchain-google-vertexai
requires anthropic<1.0.0; pin to >=0.60,<1. Verified end-to-end: the run now
reaches the Vertex API (403 on a dummy project) instead of the TypeError.
…HELL-301

run_llm_step now catches exceptions from llm.invoke (auth, model-not-found,
rate limit, timeout) and returns them as the step error, so the engine reports
a clean FAIL and applies retry/escalation instead of crashing the run with a
traceback.
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.

1 participant