Installation & Setup Requirements¶
Requirements for bootstrap, portability, installation, adoption, and updates.
Last Updated: 2026-03-16
Description: syspilot SHALL be a standalone toolkit that can be used across multiple projects. Rationale: Enables syspilot to be maintained separately and reused across multiple projects. Acceptance Criteria:
Note: Installation, update, and version tracking covered by SYSPILOT_REQ_INST_NEW_PROJECT through SYSPILOT_REQ_INST_VERSION_MARKER. |
Description: syspilot SHALL provide a curl-based bootstrap to initialize the setup agent, which then automatically sets up the sphinx-needs environment. Rationale: Agents running in cloud environments or fresh checkouts need to bootstrap their own dependencies without manual intervention. A single curl command downloads the setup agent which handles everything interactively. Acceptance Criteria:
|
Description: syspilot SHALL be distributed via GitHub, with the main branch always representing the current release. Users obtain files via curl from GitHub raw content. GitHub Releases with semantic versioning provide version tags and optional archive downloads. Rationale: Direct curl from main provides the simplest installation path. GitHub Releases provides version history, release notes, and optional archive downloads as a convenience. Acceptance Criteria:
|
Description: syspilot SHALL be installable into a new project. Rationale: New projects need a straightforward path to adopt syspilot from the beginning. Acceptance Criteria:
|
Description: syspilot SHALL be adoptable into an existing project without data loss. Rationale: Projects already in progress need to adopt syspilot without disrupting their existing work. Acceptance Criteria:
|
Description: syspilot SHALL be updatable to newer versions. Rationale: Users need to benefit from new features, fixes, and improvements over time. Acceptance Criteria:
|
Description: syspilot SHALL preserve user customizations during adoption and updates. Rationale: Users invest effort in customizing their requirements and configuration. This must not be lost during updates. Acceptance Criteria:
|
Description: syspilot SHALL declare sphinx-needs and its dependencies as mandatory components. Rationale: sphinx-needs provides the traceability infrastructure that syspilot relies on. Declaring dependencies explicitly enables automated installation by the setup agent (SYSPILOT_REQ_INST_AUTO_SETUP). Acceptance Criteria:
|
Description: syspilot SHALL store the installed version in the target project so that the update process can determine the currently installed version. Rationale: Without a version marker, the update process cannot determine whether a newer version is available on GitHub main. The marker enables version comparison without requiring the full syspilot repository to be present locally. Acceptance Criteria:
|
Description:
syspilot SHALL maintain a Rationale:
The syspilot repository is both the product (distributed toolkit) and a
consumer (dogfooding). Separating the distributable templates from the
project-specific installation prevents language-specific or
project-specific content from leaking into distributed files.
Including Acceptance Criteria:
|
Description: syspilot SHALL distribute an implement agent that contains the workflow structure (Read Change Document → Query Needs → Implement → Quality Gates → Commit) but no language-specific code examples, build commands, or test runner references. Rationale: The implement agent is the only agent that crosses from the specification world into the code world. All other agents work with RST/sphinx-needs and are inherently project-agnostic. The distributed implement agent must use TODO placeholders where project-specific configuration is needed. Acceptance Criteria:
|
Description:
When running in update mode, the Setup Agent SHALL update itself from
the chosen source (GitHub or local Rationale: The locally installed setup agent may contain outdated update logic. By fetching and applying the latest setup agent first, all subsequent update operations use the current logic. Acceptance Criteria:
|
Description: syspilot SHALL define explicit ownership categories for all files it manages, determining update behavior for each category. Rationale: The update process must distinguish between files that syspilot owns and should replace (methodology agents) and files the project owns and should never touch (release, implement agents). Acceptance Criteria:
|
Description:
The Setup Agent SHALL detect if a Rationale: When developing syspilot itself (dogfooding) or working from a local fork, developers need to test agent changes before pushing to GitHub. A local install mode enables this workflow. Acceptance Criteria:
|
Description: After replacing methodology-owned files during an update, the Setup Agent SHALL compare the old version (before replacement) with the new version. If the old version contained content not present in the new version (beyond whitespace and formatting), the Setup Agent SHALL warn the user and present the differences for review. Rationale: Projects may add custom extensions to methodology-owned files (e.g., additional verification steps in the verify agent). These additions are silently lost when the file is replaced. A post-update review step detects this and lets the user decide how to proceed. Acceptance Criteria:
|
Description: The Setup Agent SHALL perform updates on a dedicated branch and create a change document summarizing what was updated, so that changes are reviewable and traceable via standard git workflows. Rationale: Performing updates directly on the working branch makes it hard to review what changed and to roll back if needed. A dedicated branch with a change document provides the same traceability as any other syspilot change. Acceptance Criteria:
|
Traceability¶
ID |
Title |
Status |
Tags |
|---|---|---|---|
Existing Project Adoption |
implemented |
install; adoption |
|
Automatic Environment Setup |
implemented |
init; automation |
|
Setup Agent Self-Update |
implemented |
update; bootstrap; setup |
|
Customization Preservation |
implemented |
install; update; preservation |
|
File Ownership Categories |
implemented |
update; ownership; install |
|
syspilot Distribution via GitHub Releases |
implemented |
install; distribution |
|
Skeleton Implement Agent |
implemented |
install; distribution; agent; skeleton |
|
Local Install Source Detection |
implemented |
install; local; dogfooding |
|
New Project Installation |
implemented |
install; new-project |
|
Portable Toolkit |
implemented |
portability; sync |
|
Post-Update Extension Review |
implemented |
update; review; diff |
|
Sphinx-Needs Mandatory Dependency |
implemented |
install; sphinx-needs; dependency |
|
Template-First Distribution |
implemented |
install; distribution; templates |
|
Update on Dedicated Branch |
implemented |
update; branch; traceability |
|
Installation Version Tracking |
implemented |
install; update; version |
|
Version Update and Migration |
implemented |
update; migration |