Add component-selection reasoning and audit protocols#177
Merged
Alan-Jowett merged 8 commits intomicrosoft:mainfrom Apr 6, 2026
Merged
Add component-selection reasoning and audit protocols#177Alan-Jowett merged 8 commits intomicrosoft:mainfrom
Alan-Jowett merged 8 commits intomicrosoft:mainfrom
Conversation
Add two new protocols for electronic component selection in hardware design workflows: - component-selection (reasoning): Systematic methodology for selecting core functional components from requirements. Covers requirements extraction, candidate search with real-time verification, technical evaluation with weighted decision matrices, sourcing verification, and cross-component compatibility checking. Scoped to core functional components; supporting circuitry belongs in schematic design. - component-selection-audit (analysis): Adversarial audit that independently verifies part numbers exist, datasheet specs match claims, sourcing data is current, compatibility assertions hold, and all requirements are satisfied. Designed to catch hallucinated parts and stale specifications. These are Step 1 of 9 in building an end-to-end hardware design workflow (idea -> requirements -> components -> schematic -> PCB -> manufacturing artifacts). Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Contributor
There was a problem hiding this comment.
Pull request overview
This PR adds two new PromptKit protocol components to support a future hardware design workflow step focused on selecting electronic components from requirements and then adversarially auditing that selection.
Changes:
- Added a new reasoning protocol for systematic component selection, including candidate search, technical/sourcing evaluation, compatibility checks, and a weighted decision matrix.
- Added a new analysis protocol to independently audit part numbers, datasheet claims, sourcing data, requirements traceability, and compatibility assertions.
- Registered both new protocols in
manifest.yamlso they’re discoverable by the bootstrap/assembly tooling.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
| protocols/reasoning/component-selection.md | Introduces the step-by-step component selection methodology and output artifacts (tables/matrices). |
| protocols/analysis/component-selection-audit.md | Adds an adversarial verification protocol to catch hallucinated parts/specs and stale sourcing/compatibility claims. |
| manifest.yaml | Adds both protocols to the manifest under the appropriate protocol categories. |
Fix 6 findings identified during self-audit: 1. Voltage regulator identification gap (Medium): Phase 6 now explicitly flags when a voltage domain has no direct power source, documenting the need for a regulator as a schematic design handoff. Previously this was only implicitly captured in Phase 8.3. 2. Undefined input artifact (Medium): Added an Input section to the protocol preamble specifying valid inputs (natural language description, existing requirements doc, or user conversation) and instructing the LLM to probe for missing information. 3. Undefined priority levels (Low): Phase 1 now defines Must/Should/May priority values and their effect on downstream evaluation (Must failures trigger elimination in Phase 4). 4. Module vs. bare IC for wireless (Medium): Phase 3 now explicitly requires evaluating both pre-certified modules and bare ICs for wireless components, with guidance on certification implications (FCC Part 15, CE RED) and a preference for modules in prototype/ low-volume designs. 5. Ambiguous audit halt behavior (Low): Audit Phase 1.4 now says 'continue auditing remaining components' instead of 'do not proceed', clarifying that unverified part numbers are blocking findings in the final verdict but do not halt the audit mid-execution. 6. Rigid candidate count (Low): Phase 3 now says 'at least 2' with guidance to consider 4-5 for broad categories (MCU, wireless) and to document rationale when fewer candidates exist. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Address reviewer feedback on Phase 6 power budget roll-up: the original
text compared worst-case current (mA) against 'power source capacity'
which is ambiguous — battery capacity is measured in mAh (charge), not
mA (current). This is a dimensional mismatch that would produce
nonsensical results.
Split into two distinct checks:
(a) Instantaneous current check: worst-case current draw per rail vs.
regulator/source maximum current rating (with 80% flag threshold)
(b) Battery life estimate: average current in the mode profile vs.
battery capacity (mAh/Wh) and required runtime
Also require explicit unit labeling in all tables and bullets.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Both component-selection and component-selection-audit use applicable_to: [] but did not document this in the body text. CONTRIBUTING.md requires protocols with empty applicable_to to state they are intended for standalone/manual composition. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Address three reviewer findings: 1. Missing space after bold label (formatting): 'Scope boundary:This' was missing a space after the colon. Trivial formatting fix. 2. No fallback when web search is unavailable (component-selection): Phase 3 mandates real-time verification via web search but had no guidance for environments without browsing tools. Without a fallback, the LLM could fabricate verification data, violating anti-hallucination guardrails. Added explicit instructions to mark unverified fields as [UNVERIFIED]/[UNKNOWN], request user- provided URLs, and label recommendations as pending verification. 3. Same gap in audit protocol (component-selection-audit): Phase 1 requires searching manufacturer/distributor sites but had no fallback. Added a preamble requiring the auditor to request user-provided sources when search is unavailable, mark assertions as [UNVERIFIED], and cap the verdict at PASS WITH CONDITIONS when source verification is incomplete. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Address two reviewer findings: 1. Phase 5 (Sourcing Evaluation) requires distributor searches but lacked the same web-search fallback added to Phase 3. Added a cross-reference to Phase 3's constraints to avoid duplication while maintaining internal consistency. 2. Audit protocol contradiction: the no-browsing preamble said 'PASS WITH CONDITIONS at best' for unverified assertions, but Phase 1.4 says unverified part numbers force FAIL. These contradicted when web search was unavailable. Fixed by distinguishing blocking items (part number existence, manufacturer, orderable status — always force FAIL if unverified) from non-blocking items (pricing, stock levels, lead times — allowed under PASS WITH CONDITIONS). Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1. CR-001 mapping inconsistency: Phase 2 example mapped Wireless MCU to CR-001 (temperature requirement) + CR-002. CR-001 is the temperature sensor requirement, not wireless. Fixed to CR-002 only. 2. 80% derating threshold: Labeled as a default conservative heuristic rather than a hard rule, with guidance to adjust based on application context (battery sag, ambient temperature, tolerances, transient loads). Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1. NRND lifecycle definition: 'will be discontinued' overstates the implication. NRND means higher lifecycle risk and discouraged for new designs, not certain discontinuation. Reworded to reflect actual industry semantics. 2. Missing Informational severity: Phase 2 severity classification listed Critical/High/Medium/Low but Phases 3.3 and 6 reference Informational findings. Added Informational level to keep the protocol internally consistent, matching the severity scale used in other PromptKit protocols (e.g., layout-design-review). Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.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.
Summary
Add two new protocols for electronic component selection in hardware design workflows. This is Step 1 of 9 in building an end-to-end hardware design workflow (idea → requirements → components → schematic → PCB → manufacturing artifacts).
New Components
Design Decisions
Checklist