mirror of
https://github.com/CyberMind-FR/secubox-deb.git
synced 2026-07-30 05:06:05 +00:00
* docs(spec): dropletctl design — port from OpenWrt, static-only v1.1.0 (ref #196) Brainstormed scope: - in: publish/remove/rename/list, HTML+ZIP+tarball, idempotent overwrite, full delegation to metablogizerctl site publish, bats unit tests with PATH-shimmed stubs, debian rules + changelog + Depends bump - out: streamlit, hexo, gitea git-versioning, atomic rollback (v1.2.0+) Captures the 5-section design just walked through: 1. Architecture (thin orchestrator → metablogizerctl) 2. Components & interfaces (file layout, CLI surface, output contract) 3. Data flow + error handling (10-step happy path, 6 exit codes) 4. Testing (10 bats cases, fixtures, PATH-shimmed delegate stubs) 5. Packaging + deploy (debian/rules + control + changelog) Per project convention saved under docs/superpowers/specs/. Awaiting user review before invoking superpowers:writing-plans. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs(plan): dropletctl implementation plan — 11 tasks, TDD, 13 bats cases (ref #196) Bite-sized TDD tasks per superpowers:writing-plans convention: Task 1 scaffold bats + fixtures + delegate stubs + CLI skeleton Task 2 publish arg validation (3 error cases) Task 3 name sanitization + single HTML happy path + metablogizerctl delegate Task 4 ZIP extraction with single-nested-dir unwrap Task 5 tarball extraction + plain-directory input Task 6 pin idempotent re-publish behavior Task 7 remove subcommand + TOML section delete Task 8 rename subcommand Task 9 list subcommand Task 10 debian packaging (rules + control + changelog 1.0.1 -> 1.1.0) Task 11 lint + final 13/13 bats sweep Spec coverage: every spec requirement maps to a task. Spec deviation noted: spec said Depends >=2.0.0 but live metablogizer is 1.1.1; plan uses >=1.1 so apt doesn't refuse. Hardware deploy on gk2 explicitly deferred to a post-merge manual step (script included). Self-reviewed: zero placeholders, no 'similar to Task N' weasel words, function names consistent (sanitize_name / stage_content / unwrap_single_nested / upsert_toml_site / remove_toml_site / default_domain / cmd_publish/remove/rename/list). Caught + fixed a spec coverage gap (plain-directory input was omitted) in Task 5. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * feat(droplet): scaffold dropletctl CLI + bats harness (ref #196) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(droplet): publish arg validation (3 error cases) (ref #196) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(droplet): name sanitization + HTML staging + metablogizerctl delegation (ref #196) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(droplet): ZIP extraction with single-nested-dir unwrap (ref #196) * feat(droplet): tarball + plain-directory input (ref #196) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * test(droplet): pin idempotent re-publish behavior (ref #196) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(droplet): remove subcommand + TOML section delete (ref #196) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(droplet): rename subcommand (ref #196) * fix(droplet): rename — collision guard + same-name guard + delegate-asymmetry comments (ref #196) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(droplet): list subcommand (ref #196) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * build(droplet): bump to 1.1.0 + add rsync/unzip/python3/metablogizer runtime deps (ref #196) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * fix(droplet): rename stores bare base domain + reject invalid domain in publish (ref #196) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * test(droplet): strengthen rename-domain test to exercise legacy-FQDN path (ref #196) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> --------- Co-authored-by: CyberMind-FR <gandalf@Gk2.net> Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| architecture | ||
| assets | ||
| design | ||
| errata | ||
| eye-remote | ||
| hardware | ||
| reference | ||
| references/gst | ||
| reports | ||
| screenshots | ||
| superpowers | ||
| wiki | ||
| AI-BUILD-PROMPT.md | ||
| CACHE-PATTERN.md | ||
| FAQ-BUSYBOX-RESCUE.md | ||
| LED-HEALTHBUMP.md | ||
| LIVE-USB.md | ||
| MODULES.md | ||
| OPENWRT-CRT-THEME.md | ||
| OPENWRT-DEBIAN-COMPARISON.md | ||
| OPENWRT-MASTERLINK.md | ||
| OPENWRT-MESH-DAEMON.md | ||
| PROMPT-BUSYBOX-TECHTIP.md | ||
| SCREENSHOTS-VM.md | ||
| SECUBOX-DEV-METHODOLOGY.md | ||
| TOOLS.md | ||
| UI-GUIDE.md | ||