Ship Magisk like GOLDEN; KernelSU optional recycle only; parallel to sunfish-a16-rom standby.
229 lines
8.9 KiB
Plaintext
229 lines
8.9 KiB
Plaintext
sunfish-a16-rom — Spec Kit beginner guide + pre-plan briefing for ChatGPT
|
||
Generated: 2026-08-09
|
||
Project path: /home/aventura/Workspaces/sunfish-a16-rom
|
||
Constitution: 0.1.5
|
||
Active feature (.specify/feature.json): specs/001-development-environment
|
||
|
||
================================================================================
|
||
1) WHAT HAPPENED WHEN WE "CREATED" THE PROJECT
|
||
================================================================================
|
||
|
||
In this project we did NOT use the SSYSTEMS command /speckit.project-create.
|
||
|
||
We used upstream Spec Kit:
|
||
|
||
specify init --here --integration cursor-agent --script sh
|
||
|
||
That command:
|
||
|
||
- created .specify/ (scripts, templates, workflows, memory/constitution template)
|
||
- installed Cursor skills under .cursor/skills/speckit-*
|
||
- those skills are what appear in Cursor as /speckit-plan, /speckit-tasks, etc.
|
||
|
||
So yes: initializing a Spec Kit project is what "brings" the other /speckit-*
|
||
commands into Cursor for THAT workspace.
|
||
|
||
Important:
|
||
- Open the sunfish-a16-rom folder in Cursor (not buildout-saar) so those
|
||
skills are available.
|
||
- /speckit-taskstoissues is GitHub-only — do NOT use it (we use Gitea later).
|
||
- We already wrote constitution + specs/001-003 manually. We do NOT need to
|
||
re-run /speckit-specify to create 001.
|
||
|
||
================================================================================
|
||
2) TYPICAL UPSTREAM ORDER (generic Spec Kit)
|
||
================================================================================
|
||
|
||
For a brand-new feature from scratch, the usual order is:
|
||
|
||
1. /speckit-constitution → project principles (once / rare)
|
||
2. /speckit-specify → create specs/NNN-name/spec.md from a prompt
|
||
3. /speckit-clarify → optional: ask structured questions
|
||
4. /speckit-plan → create plan.md (+ design artifacts)
|
||
5. /speckit-tasks → create tasks.md checklist
|
||
6. /speckit-checklist → optional quality checklist
|
||
7. /speckit-analyze → optional consistency report
|
||
8. /speckit-implement → execute tasks
|
||
9. /speckit-converge → later: find remaining work
|
||
|
||
You do NOT need every optional step every time.
|
||
|
||
================================================================================
|
||
3) ORDER FOR THIS PROJECT (sunfish-a16-rom) — RIGHT NOW
|
||
================================================================================
|
||
|
||
Already done:
|
||
[x] specify init (skills installed)
|
||
[x] custom constitution written (do NOT overwrite with generic /speckit-constitution
|
||
unless you intentionally re-seed — our constitution is already project-specific)
|
||
[x] specs 001, 002, 003 written
|
||
[x] feature.json → 001-development-environment
|
||
[x] design frozen at constitution 0.1.5
|
||
|
||
Recommended next commands (only for feature 001):
|
||
|
||
A. (optional) /speckit-clarify
|
||
Use if you want the agent to ask remaining ambiguities about 001 only.
|
||
Many ambiguities were already closed in chat — can skip.
|
||
|
||
B. /speckit-plan
|
||
Generates specs/001-development-environment/plan.md from the existing
|
||
spec.md + constitution. NO VM required.
|
||
|
||
C. /speckit-tasks
|
||
Generates tasks.md from the plan. NO VM required.
|
||
|
||
D. (optional) /speckit-analyze or /speckit-checklist
|
||
|
||
E. /speckit-implement
|
||
THIS is when rom-dev01 should exist (SSH working). Implementation of 001
|
||
assumes the VM is already provisioned outside this project.
|
||
|
||
Then later, switch feature and repeat plan→tasks→implement for:
|
||
002 → 003 → …
|
||
|
||
How to switch feature later (when 001 is done):
|
||
- edit .specify/feature.json:
|
||
{ "feature_directory": "specs/002-axp-reference-capture" }
|
||
- or use /speckit-specify only when creating a NEW feature number (004+)
|
||
- do NOT re-specify 001/002/003
|
||
|
||
================================================================================
|
||
4) WHAT EACH COMMAND DOES (short)
|
||
================================================================================
|
||
|
||
/speckit-constitution Seed/update constitution from template — SKIP for now
|
||
(ours is already custom 0.1.5)
|
||
|
||
/speckit-specify Create a NEW feature spec from a prompt
|
||
(we already have 001–003)
|
||
|
||
/speckit-clarify Ask clarifying questions before plan
|
||
|
||
/speckit-plan Write implementation plan (plan.md)
|
||
|
||
/speckit-tasks Break plan into tasks.md
|
||
|
||
/speckit-checklist Generate validation checklists
|
||
|
||
/speckit-analyze Cross-check spec/plan/tasks consistency
|
||
|
||
/speckit-implement Execute tasks against the real system/repo
|
||
|
||
/speckit-converge Find leftover work after partial implementation
|
||
|
||
/speckit-taskstoissues DO NOT USE (GitHub-specific)
|
||
|
||
================================================================================
|
||
5) PRE-PLAN BRIEFING FOR CHATGPT — FEATURE 001
|
||
================================================================================
|
||
|
||
Please review this briefing and return:
|
||
- anything missing/dangerous in the 001 plan approach
|
||
- suggested plan.md section outline
|
||
- P1 vs P2 sequencing recommendations
|
||
- explicit "do not do" list for Cursor when running /speckit-plan and later
|
||
/speckit-implement
|
||
|
||
--- PROJECT FACTS ---
|
||
|
||
Name: sunfish-a16-rom
|
||
Goal: LineageOS 23.2 / Android 16 custom ROM for Pixel 4a (sunfish), aiming at
|
||
AXP.OS Pro functionality with deliberate substitutions (Magisk→KernelSU,
|
||
backup→NeoBackup external, etc.)
|
||
|
||
Meta repo (this Spec Kit tree): eventually Gitea sunfish-a16-rom
|
||
Companion repos later: sunfish-rom-manifest, sunfish-rom-build, sunfish-rom-patches
|
||
|
||
Laptop role: Cursor Remote SSH, adb/fastboot, rsync, thin client
|
||
Build host: rom-dev01 (Ubuntu 24.04) — created OUTSIDE this project via
|
||
SSYSTEMS Salt/PVE by the human. Spec Kit must NOT create the VM.
|
||
|
||
001 starts ONLY when rom-dev01 already exists with:
|
||
- Ubuntu 24.04
|
||
- public IPv4, SSH works
|
||
- saltenv=base already applied by SSYSTEMS
|
||
|
||
Sizing to plan around (do not assume more):
|
||
6 vCPU / 52 GB RAM / 2 TB disk / 32 GB swap
|
||
→ conservative build parallelism later (003), not in 001 yet
|
||
|
||
001 IN SCOPE (ROM host environment):
|
||
- android-build user/workspace
|
||
- Android/Lineage build packages, git, git-lfs, repo, ccache
|
||
- /srv/rom layout (sources, artifacts, logs, tooling, reference)
|
||
- private Gitea (bind/tunnel; not world-exposed)
|
||
- four repos: sunfish-a16-rom, sunfish-rom-manifest, sunfish-rom-build,
|
||
sunfish-rom-patches
|
||
- off-VM backup/mirror of those Git repos (laptop/Borg/etc.)
|
||
- Ansible + Semaphore (P2; smoke playbook OK first)
|
||
- Spec Kit meta repo available on host
|
||
- Cursor Remote SSH + rsync artifacts workflow docs
|
||
- guest isolation posture docs/config (public NIC only; UIs not world-open)
|
||
[human already accepted keeping this in 001]
|
||
|
||
001 OUT OF SCOPE:
|
||
- Proxmox / pm-test01 / choosing public IP / company Salt VM creation
|
||
- Lineage sync/build (003)
|
||
- AXP capture / NeoBackup phone backup (002)
|
||
- microG/Phonesky/KernelSU/hardening
|
||
|
||
P1 vs P2 in 001:
|
||
P1: SSH + android-build + toolchain + /srv/rom + docs for thin-client workflow
|
||
(enough to unlock 003 later)
|
||
P2: Gitea + four repos + off-VM mirror + Ansible/Semaphore + isolation polish
|
||
|
||
Priority for ChatGPT review of the future plan.md:
|
||
- Must not invent PVE/qm/Salt SSYSTEMS steps
|
||
- Must not require Ansible on the laptop
|
||
- Must not put .repo/out/ccache on the laptop
|
||
- Must keep Gitea/Semaphore off public Internet by default
|
||
- Must include off-VM git backup
|
||
- Must use account android-build (not hard-code laptop username)
|
||
- First LOS build remains manual later (003); 001 only prepares the host
|
||
|
||
Authoritative files for Cursor when planning:
|
||
- .specify/memory/constitution.md (0.1.5)
|
||
- specs/001-development-environment/spec.md
|
||
- AGENTS.md
|
||
- docs/axp-pro-parity.md and docs/hardening-backlog.md are NON-NORMATIVE
|
||
|
||
Suggested plan.md outline for /speckit-plan to produce:
|
||
1. Summary / goals
|
||
2. Assumptions (VM pre-exists)
|
||
3. Non-goals
|
||
4. Host layout (/srv/rom, android-build home)
|
||
5. Package/toolchain set (LOS build deps)
|
||
6. ccache defaults for 6 vCPU / 52 GB
|
||
7. Gitea install + access model (SSH tunnel)
|
||
8. Initial empty repos + push meta Spec Kit tree
|
||
9. Off-VM backup/mirror procedure
|
||
10. Ansible + Semaphore minimal bootstrap
|
||
11. Isolation/firewall/DNS guest posture (docs + config)
|
||
12. Laptop workflow (Remote SSH, rsync, adb/fastboot)
|
||
13. Acceptance mapping to FR/SC in spec.md
|
||
14. Handoff criteria to start 002/003
|
||
|
||
Please critique this outline and list concrete plan bullets Cursor should include
|
||
or avoid.
|
||
|
||
================================================================================
|
||
6) AFTER CHATGPT ANSWERS
|
||
================================================================================
|
||
|
||
Human brings ChatGPT feedback into Cursor, then runs:
|
||
|
||
/speckit-plan
|
||
|
||
(optionally paste ChatGPT constraints as $ARGUMENTS)
|
||
|
||
Then:
|
||
|
||
/speckit-tasks
|
||
|
||
Implement only when rom-dev01 SSH works.
|
||
|
||
================================================================================
|
||
END
|
||
================================================================================
|