Final Project
Pipeline Editor
Build the Control Panel's pipeline editor using plain HTML, CSS, and browser JavaScript with the existing Python backend. I should be able to arrange work, choose its checks, save it, and reopen it without losing information.
Start With The Project
Give the pipeline a name and a master plan describing its purpose, behavior, and boundaries. Below it, show an ordered list of stages. Each stage should describe one result someone can observe.
Write A Stage Requirement
Give each stage a stable id, name, requirement, relevant documentation paths, optional dependency, and ordered gates. A requirement should explain what to deliver and preserve. For example, saving a pipeline must retain step order and keep the draft when saving fails.
Arrange The Work
Allow adding, removing, duplicating, and moving stages. Store order in an array and reference dependencies by stage id. Duplicates get new ids. Only earlier stages can supply output; explain any dependency broken by a move or deletion before saving.
Choose A Gate
- Script: run a command and require a zero exit status.
- Review: ask a fresh agent to judge written criteria.
- Human: wait for approval of the current artifact.
- Automatic: continue without an additional check.
Allow several gates in order, with human approval last. Automatic must stand alone and display “No verification.” Show only the fields needed by the selected type.
Configure Commands And Reviews
Store each command as an executable and argument array with a timeout. A command that cannot run is unavailable and blocks progress. Review gates need criteria and a read-only agent profile. Their verdicts cannot override failed script checks.
Check Across Stages
Add baseline commands after every stage, health checks at a chosen interval, and final acceptance commands. Require at least one final command. Run health checks again at completion, even if the pipeline was too short to reach their interval.
Select Agent Roles
Load the local agent profiles the server provides. Select profiles for implementation, repair, documentation, and final review. Stage reviews may use another profile. Keep credentials on the server and freeze resolved settings when a run is created.
Define File Boundaries
Include protected test and configuration paths, plus the documentation paths its agent may update, defaulting to specifications/. Resolve them inside the chosen repository and report missing required files before execution.
Set The Limits
Default to one repair per stage, fifteen minutes per agent call, two minutes per check, and one hour of active execution per run. Allow zero to two repairs and positive deadlines. Waiting for a person does not consume active execution time.
Save And Reopen
Provide one endpoint that creates a pipeline, one that lists the saved pipelines, and one that reopens a single pipeline by its identifier. Return the id, name, revision, definition, and timestamps. Creating a pipeline returns its new record, and reading one returns the stored version. Saving never starts work.
Update By Identifier
Provide an endpoint that updates a pipeline by its identifier. Retain the id, increment the revision, and return the updated record. Require the revision the editor loaded so the server refuses a stale save. Existing runs continue using their frozen definitions.
Validate Before Writing
Trim names and reject blanks or case-insensitive duplicates. A name collision stops the save and reports the conflict. Reject empty stages, blank requirements, duplicate ids, broken dependencies, incomplete gates, and invalid limits, each with a clear reason. Treat an unknown identifier as not found. Enforce validation in Python as well as the browser.
Keep The Draft On Failure
After a failed save, retain all fields and show the reason. Warn before discarding unsaved changes to open another pipeline. After success, show the saved revision. Do not let running agents rewrite requirements or add stages to their frozen definition.
Verify The Editor
Save two dependent stages, reload, restart the server, and reopen them unchanged. Update one requirement and confirm the id stays stable. Test duplicate names, stale revisions, invalid dependencies, and storage failure through the UI and API.
Once run creation exists, edit a pipeline after creating a run and confirm that run retains the earlier version. Use real SQLite storage for persistence checks and record the results in the knowledge base.
September, 2026