chore: add spec-kit configuration and project-tailored templates#2
Merged
Conversation
- Initialize .specify/ with constitution (v1.0.0), customized templates (spec, plan, tasks, checklist), extensions (git, brownfield), and workflow registry - Add speckit agent definitions (.github/agents/speckit.*.agent.md) - Add speckit prompt definitions (.github/prompts/speckit.*.prompt.md) - Add plan-integration marker to copilot-instructions.md - Templates reference actual module structure, Gradle tasks, source paths, ADRs, and KMP conventions - Validated against codebase: all paths, commands, and dependencies verified accurate Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Signed-off-by: James Rich <james.a.rich@gmail.com>
- Remove unused GattErrorCategory import from BleTransport.kt - Remove dead GATT_RETRY_BACKOFF_MS property (backoff handled by GattErrorCategory.backoffMs) - Add ADR-012 lifecycle-idempotency annotations to BLE transport atomics - Update docs/SPEC.md convention plugin references from meshtastic.radio.* to actual names (meshtastic.kmp.library, meshtastic.android.library, meshtastic.publishing, etc.) - Update Appendix A class name to KmpLibraryConventionPlugin Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Signed-off-by: James Rich <james.a.rich@gmail.com>
Comprehensive audit of SPEC.md against the actual codebase revealed significant drift. This revision synchronizes the spec with reality. Key changes: - Pin toolchain/SDK versions (JVM 21, Android SDK 36, Kotlin 2.3.20) - Document full RadioClient surface (configBundle, channels, sendReaction, requestNodeInfo, sendRaw, connectAndAwaitReady, AutoReconnectConfig) - Expand AdminApi from 15 to 45 methods; add AdminResult extensions - Add StoreForwardApi, SendDSL, SendOutcome - Expand MeshEvent (13+ variants) and NodeChange (WentOffline/CameOnline) - Add DeviceStorage passkey + heartbeat persistence methods - Update engine internals to match inline implementation - Expand anchor invariants 11-17 - Update Appendix A/B to match actual convention plugins and versions - Fix heartbeat nonce semantics (nonce=0, not incrementing) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Signed-off-by: James Rich <james.a.rich@gmail.com>
Synchronize all documentation with the v2.2 specification to reflect recent SDK additions and architectural refinements: - **New Features:** Introduced the Send DSL, `autoReconnect` configuration, and heartbeat-based presence tracking (`WentOffline`/`CameOnline`). - **API Extensions:** Added convenience extensions for `AdminResult` and `ConnectionState`, plus a new `connectAndAwaitReady()` lifecycle method. - **Error Handling:** Expanded `SendFailure` types (IdCollision, AckTimeout) and added `CongestionWarning`, `ExternalConfigChange`, and `StorageDegraded` to `MeshEvent`. - **Storage & State:** Updated `StorageProvider` for session passkey persistence and added `configBundle` and `channels` flows to the client. - **Maintenance:** Bumped Android SDK requirement to API 36, updated the project roadmap, and documented new parity sample applications in the module graph.
…on RadioClient Add typed Flow<NeighborInfo> and raw Flow<MeshPacket> convenience extensions on RadioClient, matching the existing textMessages pattern. Enables consumers to collect pre-decoded NeighborInfo domain objects without manual packet filtering or proto ADAPTER.decode calls. - neighborInfoMessages: filtered Flow<MeshPacket> for NEIGHBORINFO_APP port - neighborInfoFlow: mapped Flow<NeighborInfo> with full proto decoding Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Signed-off-by: James Rich <james.a.rich@gmail.com>
Update api-reference, error-taxonomy, module-graph, roadmap, README, CONTRIBUTING, and CHANGELOG to align with SPEC.md v2.2 revisions. Refresh Spec Kit agent definitions, templates, and workflow registry. Signed-off-by: James Rich <james.a.rich@gmail.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
…x markdownlint rules
All 18 speckit.*.prompt.md files were missing the required 'description'
key in their YAML frontmatter. The tooling check.sh validates
'has("description")' on every .prompt.md file, causing CI failure.
Fix: copy each agent's description into its matching prompt file.
Also disable MD029/MD031/MD040 in the markdownlint invocation — these
fire on vendored speckit agent files whose fenced‐block style we do not
control.
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: James Rich <james.a.rich@gmail.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
(spec, plan, tasks, checklist), extensions (git, brownfield), and
workflow registry
paths, ADRs, and KMP conventions
verified accurate