Platform Target Smoke Policy Implementation Plan
For agentic workers: REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (
- [ ]) syntax for tracking.
Goal: Move the Stage 12 platform-specific smoke split from roadmap prose into the platform target registry so structural archive checks and client CLI activation checks cannot drift.
Architecture: Add a required smoke mapping to each platform target. Registry validation should require explicit structural_archive_check and client_activation_check values, release download metadata should expose the policy, and artifact manifests should carry the policy for every registry-backed artifact.
Tech Stack: Python 3, unittest, YAML platform registry, release download/index JSON generation.
File Map
- Modify:
content/distribution/platform-targets.yaml- Add
smokemetadata to every platform target.
- Add
- Modify:
packages/python-qiongli/src/qiongli/platform_targets.py- Add
smoketoPlatformTarget. - Validate allowed smoke policy values.
- Add
- Modify:
tooling/scripts/generate_release_downloads.py- Include
smokein platform target index records. - Include
smokein registry-backed artifact manifest records.
- Include
- Modify:
tests/test_plugin_distribution_contract.py- Assert every target declares the smoke split.
- Assert schema rejects missing smoke metadata.
- Modify:
tests/test_release_downloads.py- Assert generated index and artifact manifest carry smoke metadata.
- Modify:
docs/superpowers/roadmaps/2026-07-01-adaptive-subject-runtime-roadmap.md- Record this Stage 12 backlog item as implemented.
Task 1: Add Failing Smoke Policy Tests
Files:
Modify:
tests/test_plugin_distribution_contract.pyModify:
tests/test_release_downloads.py[ ] Step 1: Assert registry smoke policies
Add assertions that:
self.assertEqual(
targets["codex-marketplace-plugin"].smoke["structural_archive_check"],
"marketplace_validation",
)
self.assertEqual(
targets["codex-marketplace-plugin"].smoke["client_activation_check"],
"local_install_acceptance",
)
self.assertEqual(
targets["claude-desktop-skill-zip"].smoke["client_activation_check"],
"not_applicable",
)- [ ] Step 2: Assert schema rejection for missing smoke metadata
Create a fixture target without smoke and expect:
target fixture-target.smoke must be an object- [ ] Step 3: Assert generated outputs include smoke metadata
In release download tests, assert:
self.assertEqual(
index["platform_targets"]["codex-marketplace-plugin"]["smoke"]["client_activation_check"],
"local_install_acceptance",
)
self.assertEqual(
codex_record["smoke"]["structural_archive_check"],
"marketplace_validation",
)- [ ] Step 4: Run RED
Run:
.venv/bin/python -m unittest \
tests.test_plugin_distribution_contract.PluginDistributionContractTests.test_platform_target_registry_declares_boundary_rules \
tests.test_plugin_distribution_contract.PluginDistributionContractTests.test_platform_target_registry_rejects_missing_smoke_metadata \
tests.test_plugin_distribution_contract.PluginDistributionContractTests.test_platform_target_registry_rejects_unknown_smoke_policy \
tests.test_release_downloads.ReleaseDownloadsTests.test_generates_human_and_machine_download_guides \
-qExpected before implementation: PlatformTarget has no smoke attribute or generated metadata lacks the smoke key.
Task 2: Implement Registry Smoke Policy
Files:
Modify:
content/distribution/platform-targets.yamlModify:
packages/python-qiongli/src/qiongli/platform_targets.pyModify:
tooling/scripts/generate_release_downloads.py[ ] Step 1: Add YAML metadata
For plugin and package targets that require real client checks, use:
smoke:
structural_archive_check: marketplace_validation
client_activation_check: local_install_acceptanceFor skill-only or package-only targets without client activation, use:
smoke:
structural_archive_check: marketplace_validation
client_activation_check: not_applicable- [ ] Step 2: Validate schema
Allow exactly:
STRUCTURAL_ARCHIVE_CHECKS = {"marketplace_validation", "package_build_validation"}
CLIENT_ACTIVATION_CHECKS = {"local_install_acceptance", "not_applicable"}- [ ] Step 3: Emit generated metadata
Add smoke to _target_index() and to each registry-backed artifact manifest record.
- [ ] Step 4: Run GREEN
Run the same focused unittest command. Expected: OK.
Task 3: Update Roadmap And Verify
Files:
Modify:
docs/superpowers/roadmaps/2026-07-01-adaptive-subject-runtime-roadmap.md[ ] Step 1: Update Stage 12 status/backlog
Record that platform-specific smoke policy is now registry-backed and no longer only prose in the optimization backlog.
- [ ] Step 2: Run regression checks
Run:
.venv/bin/python -m unittest tests.test_plugin_distribution_contract tests.test_release_downloads -q
.venv/bin/python tooling/scripts/validate_platform_targets.py
git diff --check- [ ] Step 3: Commit by category
Feature commit:
feat(distribution): add platform target smoke policyDocs commit:
docs(roadmap): record platform smoke policy hardening