assurance · Level 3
Engineering AI purpose, hazards and professional sign-off
A Mickai / Trust Agent workbook for adult engineering teams: purpose,traceability and accountable professional decisions.

Your next step
Start this course online
Register your start, then work through the lessons and exercises at your own pace. You can download the PDF separately. Where a scored exam is available, you will find it after the lessons.
Register or resume your course
Start with the essentials
The short answer
Define engineering purpose,system boundary and physical consequences before allowing AI assistance. Keep hazards,controls and evidence distinct,check current applicability,and establish competent accountable review with independent challenge. Missing evidence remains missing when documents are polished or review fields complete. Mica uses invented records; its assumed roles and knowledge assessment confer no professional title,physical validation or real design approval.
What you will learn
- Classify six fictional engineering AI uses by physical consequence,purpose and decision authority.
- Construct hazard-control-evidence traceability without treating missing evidence as valid assurance.
- Prepare a requirements register distinguishing actual law,professional guidance,voluntary frameworks and unresolved applicability.
- Challenge currentness,review sequencing,stop/resume and supplier boundaries in an executable finite synthetic lab.
- Assemble an accountable assurance plan with qualified review questions,proposed independent challenge and held unresolved release decisions.
Who it is for
Adult engineering managers,safety leads,quality teams and technical owners. Fictional component-review pack; no dimensions,loads,actual component design,professional qualification or real physical release.
Before you start
- Understand an AI use inventory and the difference between an analytical draft and an authorised decision.
- Optional original lab needs Python3.10+ standard library only. No model,paid service,engineering file or network access.
Jurisdiction and study scope
These are selected reference pathways. Choose the relevant pathway before applying the exercises. This does not determine applicable law or provide worldwide coverage.
All pathway limits
- Actual engineering applicability unresolved: Identify actual discipline,product,market,lifecycle,dutyholders,standards,acceptance methods,data and physical consequences. Fictional Mica role labels settle none of these.
- Scoped UK engineering worked context: Separate professional-registration overview,current February2026 ethical principles,sector-wide risk guidance and GB workplace guidance from actual product law,technical standards and qualified design acceptance. UK-SPEC fourth edition overview is selected,full PDF retrieval unavailable. ICO DUAA review remains visible.
- Another market or cross-border project: Identify actual engineering/product and AI roles,current applicable requirements,territories,supplier/data/rights and competent independent review. Current Commission announcement is not independently retrieved operative amended legal text. UK guidance and voluntary frameworks confer no foreign-market approval.
Run the synthetic exercise
Download the exercise source, tests and instructions (ZIP)
No real records, external service or model is used by this exercise. Read the README before running it.
Owner-commissioned original course prepared with AI assistance. Mica records,assumed roles and evidence gaps are fictional. No product endorsement,legal determination,professional title,engineering safety certification or design authority claimed.
Learn in your browser · Chapter 01 of 08
Purpose, consequence and system boundary
Map six uses by the decisions their words may influence, then preserve the physical authority boundary.
Mica-Component-Training is an invented review pack for adult engineering managers, safety leads, quality teams and technical owners. Its purpose is assurance-teaching. The pack offers document assistance around a fictional component proposal, while withholding physical design and release decisions. It contains no dimensions, load values, material properties, drawings or operating instructions. This boundary lets us examine how evidence acquires apparent authority without asking a text assistant to design anything. The central question is what a reader might do because of an output, even when that output contains only words.
Purpose describes the intended assistance and the decision it may influence. A purpose map can help a reviewer understand exclusions. A traceability draft can organise questions about missing evidence. A comparison can expose an obsolete claim. These uses differ from deciding that an assumption is verified, authorising supplier reuse or approving release. Do not classify them solely by the software interface. The same text box could support a document task or request a physical conclusion, and the consequences of that distinction belong in the proposal before prompting begins.
Consider the reliance pathway. An assistant might omit the phrase load assumption UNVERIFIED from an executive summary. A manager could then treat a complete-looking review pack as sufficient to progress. The assistant has not moved a component, but it has affected a consequential decision. Classifying assistance therefore requires an account of who receives the output, what they may infer and what further evidence they need. A label such as administrative or internal is insufficient if the document will later support a physical release meeting.
Scroll sideways to see every column.
| Case and source | Decision distinction | Initial paper boundary |
|---|---|---|
| MC01 purpose-map; MS01 | Organise the brief and retain physical exclusions | Eligible analytical draft |
| MC02 traceability; MS02 | Expose supplied concerns and missing evidence | Eligible analytical draft |
| MC03 version-comparison; MS03 plus internal MS04 | Compare current and historical labels | Eligible, two controlled reads |
| MC04 load-promotion; MS03 | Promote an unverified assumption | HOLD before IO |
| MC05 supplier-reuse; MS05 | Assume purpose and rights are settled | HOLD before IO |
| MC06 release-authority; MS06 | Treat a descriptor as professional sign-off | HOLD before IO |
The six Mica uses retain different boundaries. MC01 creates a purpose map from MS01. MC02 organises the supplied concerns from MS02. MC03 compares current MS03 with historical MS04. MC04 asks for load promotion, MC05 for supplier reuse and MC06 for release authority. Only the first three are eligible for analyse. MC03 needs two controlled sources, so the initial six unique version-1 requests have a paper expectation of three ANALYTICAL_DRAFT results, three holds and four attempted reads. These are predictions from the contract, not observations of execution.
The word analyse does not settle permission. MC04 remains held even though its declared source is MS03, which MC03 may use. Permission is tied to a case, operation and purpose together, not inherited from source availability. MC05 and MC06 remain held before source access. Their descriptors appear in the workbook to explain the exercise boundary; seeing that description does not mean the runtime reads the held files. This distinction is useful when reviewing a proposal that treats an existing account or accessible document as blanket authority.
A system boundary has both technical and organisational edges. Technically, Mica selects fixed sources and produces analytical records in memory. Organisationally, the exercise has no competent appointment, actual design acceptance, authenticated reviewer or release connection. A persuasive output cannot cross either edge. Record what remains outside the system rather than describing every excluded decision as future functionality. A real project would require an identified discipline, product, market, applicable requirements and qualified evidence review before determining whether any more consequential use was appropriate.
An average worked brief says: use AI to improve the component review and mark the proposal ready when the papers are complete. It leaves ready undefined and allows paperwork to stand in for engineering evidence. The elite brief says: organise the current fictional documents, preserve the unverified load assumption and unresolved rights, and return questions for adult review. It identifies the three analytical cases and the three excluded cases separately. It also names the receiving decision: deciding what evidence and expertise must be obtained, without authorising the component or any physical action.
- State the decision the output may inform and its receiving audience.
- Separate the six uses by assistance, requested authority and possible reliance.
- Bind each use to exact case, source, operation and purpose.
- Trace how an omission could influence a consequential decision.
- Record exclusions and the evidence or competence that remains missing.
- Review the boundary again whenever use, audience or requested authority changes.
The elite brief is testable because a reviewer can inspect its exclusions. For MC01, the summary must preserve document assistance only and physical design and release excluded. For MC02, the presence of a row cannot turn missing evidence into verification. For MC03, a historical verified-looking label cannot replace the current unverified status. These are different failure mechanisms, so each deserves a specific check. A general instruction to be careful leaves the reviewer unable to explain which boundary a particular draft crossed or why that crossing matters.
nist-ai-rmf provides a voluntary method for documenting context, intended uses and knowledge limits. engc-risk-guidance encourages judgement across systems and consequences rather than treating an assessment form as the decision itself. Neither supplies a product acceptance rule for Mica. Use their scoped ideas to structure a proposal, then state the local questions they cannot answer. This prevents a recognised framework name from becoming another unexplained reason to progress a component whose critical assumption is still unresolved.
A purpose map should remain readable after it leaves the drafting team. Explain case identifiers, source revisions and holds in ordinary language alongside their exact labels. The chair should be able to see why a useful summary remains a draft and why a complete training proposal retains a release hold. If a recipient needs the same information as a text table or paper copy, preserve the exclusions and missing-evidence wording there too. A shorter format is useful only if it keeps the decision boundary visible.
ROLE: Adult Mica purpose-map drafter.
CONSTRAINTS: Mica-Component-Training; assurance-teaching; analyse only; no physical design, calculations, supplier reuse or release authority.
PROCESS: Separate MC01..MC06 by decision, audience, source dependency and excluded authority.
VERIFICATION: Check exact mappings; preserve MC04/MC05/MC06 pre-read holds and the current unverified load boundary.
OUTPUT SCHEMA: caseId; sourceId; supportedDecision; reliancePath; assistanceScope; exclusion; unresolvedEvidence.
FAILURE MODES: Reject one-row readiness, analyse-as-permission and document completeness-as-physical-acceptance. Initial 3 drafts/3 holds/4 reads is a paper expectation.Purpose connects documents to decisions
Separate useful analytical assistance from excluded authority and unresolved physical evidence.
- Define purpose: assurance-teaching
- Trace reliance: Who may act on the words?
- Check six uses: Case, source and authority
- Bounded draft: MC01, MC02 and MC03
- Retain hold: MC04, MC05 and MC06
- Define purpose to Trace reliance: Identify consequence
- Define purpose to Check six uses: Define assistance
- Trace reliance to Bounded draft: Preserve limitations
- Check six uses to Bounded draft: Eligible exact mapping
- Check six uses to Retain hold: Excluded authority
Text equivalent: define the assurance-teaching purpose, then trace how a reader may rely on the output and check the six case/source boundaries. MC01, MC02 and MC03 can produce bounded drafts. MC04, MC05 and MC06 remain held before source reads. A draft cannot establish physical acceptance.
Try it yourself · Activity 01
45 minutesRewrite the component-review readiness brief
An invented manager asks Mica to improve the review pack and mark the component ready once all papers are listed. Rewrite this as a six-use purpose map. Leave space in your notes for the reliance pathway and missing evidence.
- Create six entries with exact case/source names and the requested decision.
- Explain how one omission could affect a physical decision without any device connection.
- Keep three excluded uses distinct and identify why MC03 needs two sources.
- Success criteria: six accurate mappings; document assistance distinguished from decision authority; current load uncertainty retained; 3/3/4 labelled as a paper prediction; no real approval or physical procedure.
Which use would your original wording have silently authorised, and what recipient decision made that omission consequential?
Worked answer
MC01/MS01 can map purpose; MC02/MS02 can organise traceability; MC03/MS03 with internal MS04 can compare revisions. Their output informs what further evidence and expertise the adults need. MC04/MS03 cannot promote load assumptions, MC05/MS05 cannot authorise supplier reuse and MC06/MS06 cannot confer release authority. An omitted UNVERIFIED label could mislead a receiving manager, so every relevant summary retains it. Expect three drafts, three holds and four attempted controlled reads on paper because MC03 reads two files. Keep assurance-teaching and physical exclusions explicit. No actual component acceptance follows.
Scroll sideways to see every column.
| Chapter review question | Answer after your attempt |
|---|---|
| Why start with the receiving decision? | It shows how a document may affect action and exposes evidence needs concealed by a tool label. |
| Can a text-only output have a physical reliance pathway? | Yes. A recipient may progress a proposal because uncertainty or exclusions disappeared from the text. |
| Why can MC03 use MS03 while MC04 cannot? | The allowed case/source/operation/purpose mapping differs; source availability does not transfer authority. |
| Why predict four reads for three drafts? | MC03 compares MS03 and internal MS04; MC01 and MC02 each use one controlled source. |
| Does a workbook descriptor show held runtime access? | No. Descriptive teaching content and actual source IO are different. |
| What do NIST and Engineering Council risk guidance establish? | Scoped methods for context and judgement, without product acceptance or real release permission. |
Apply what you learned · Practice
Explanation and answer
It is held before IO because load-promotion remains excluded. Case, source, operation and purpose are checked together. MC04 cannot promote the unverified load assumption.
Practice only. This does not count towards your exam or certificate.

Learn in your browser · Chapter 02 of 08
Hazard-control-evidence traceability
Inspect the link between a proposed control and what its evidence actually establishes.
A traceability table connects a concern to a proposed control and the evidence needed to examine that control. It helps a reviewer ask whether the argument has a missing link. It does not make the control effective merely by naming it. In Mica, the three supplied rows are fictional assurance concerns, not an exhaustive hazard assessment of a real component. Their limited scope matters: a faithfully reproduced table can be useful for document review while remaining wholly insufficient to justify any physical design or release.
Distinguish four ideas before filling cells. A hazard is something with potential to cause harm. A consequence describes what may happen if a relevant failure reaches people or the environment. A control is an action or arrangement intended to prevent or reduce that failure. Evidence is what supports the claim that the control is suitable and effective in its context. The Mica table concerns assurance failures around these ideas. It supplies no numerical likelihood, severity, acceptance value or verified physical behaviour. An adult author must not manufacture those missing assessments from the row labels.
Scroll sideways to see every column.
| hazardId | concern | controlId | control | evidenceId | status |
|---|---|---|---|---|---|
| H01 | unverified-load-assumption | C01 | obtain-competent-evidence | E01 | MISSING |
| H02 | superseded-evidence | C02 | check-current-version | E02 | CURRENT_INDEX_ONLY |
| H03 | unauthorised-supplier-reuse | C03 | resolve-purpose-and-rights | E03 | UNRESOLVED_RIGHTS |
H01 identifies an unverified-load-assumption concern. C01 says obtain-competent-evidence, with E01 marked MISSING. The words obtain evidence describe work still needed; they do not report a completed verification. A useful traceability draft keeps the missing status beside the proposed control. If the author instead changes the evidence cell to the control name, the table becomes circular: the proposal to verify is presented as proof of verification. That failure is particularly misleading when a review pack appears orderly and every row contains text.
H02 identifies superseded-evidence. C02 says check-current-version, with E02 marked CURRENT_INDEX_ONLY. Current means that the index is the chosen baseline, not that the engineering assumption has been verified. MC03 compares MS03 revision1 with MS04 revision0 and retains currentLoadStatus UNVERIFIED. The historicalLoadLabel is OBSOLETE_VERIFIED_LOOKING. It may explain why a past document is tempting, but it cannot repair the current gap. Describe both the version choice and its limited meaning, rather than giving the current index a broader evidential status than it carries.
H03 identifies unauthorised-supplier-reuse. C03 says resolve-purpose-and-rights, with E03 marked UNRESOLVED_RIGHTS. Here the missing link concerns permitted use of information, not a calculation. A public risk framework cannot establish rights over a separate supplier document. A supplier descriptor in the workbook also cannot establish those rights. MC05 remains held before IO. Retain this concern alongside H01, because a decision can lack both competent engineering evidence and information permission. Resolving one would not automatically resolve the other in a real proposal.
Traceability is strongest when a reader can locate the claim that each evidence item actually supports. Ask what the item says, which revision it belongs to, and what it leaves open. E02 can support selection of a current index, while E01 cannot support load verification because its status is MISSING. This makes the table more informative than a single percentage complete. A percentage can conceal that a decisive item is absent even when many administrative documents are present. Mica does not define an acceptable completeness threshold or allow unresolved rows to be averaged away.
An average worked table writes H01, verification control, review pack, complete. It mistakes the existence of a pack for evidence of its most consequential assumption. The elite table uses the six exact row keys: hazardId, concern, controlId, control, evidenceId and status. It retains the three ordered rows, explains the meaning of MISSING, CURRENT_INDEX_ONLY and UNRESOLVED_RIGHTS, and adds a separate ordinary-language question for the reviewer. The question asks what competent evidence and rights decisions would be necessary without asserting that either has been obtained.
- Identify the concern and the consequential claim it could undermine.
- State the proposed control without describing it as completed work.
- Connect the exact evidence identifier and its current status.
- Check whether that status supports the specific control claim.
- Reverse-check each evidence item for overextended or borrowed meaning.
- Preserve unresolved gaps and send precise questions to competent review.
The elite reviewer tests the argument in both directions. Starting with H01, can the proposed control be connected to a usable evidence claim? Starting with E02, which concern can its limited status actually address? This reverse check catches evidence being borrowed to support the wrong conclusion. Keep that commentary separate from the code-owned rows so the original record remains inspectable. No commentary, passive source note or enthusiastic summary may alter the six keys or turn a missing status into an achieved control. Faithfulness and judgement serve different purposes.
engc-risk-guidance supports attention to linked risks, assumptions and evidence-supported precision. hse-risk-and-competence distinguishes identifying hazards, assessing workplace risk, controlling it and reviewing controls. These scoped sources do not supply Mica with a complete product hazard analysis or prescribed engineering test. Their relevance is the discipline of examining the links, not permission to fill absent technical values. A qualified real review would need to identify the actual product, use, method and duty holders before deciding which hazards and evidence are sufficient.
A table needs a readable explanation as well as accurate labels. Explain that a missing entry means missing evidence, while a current index means only a current index. Do not rely on colour or a green icon to convey those distinctions. A printed copy and a screen-reader presentation should retain each row's identifiers, relationships and statuses. This improves the proposed review route, but no actual user or assistive-technology test has occurred. An accessible-looking record still requires examination of both its usability and the quality of the underlying argument.
ROLE: Adult Mica traceability reviewer.
CONSTRAINTS: MC02/MS02 supplied rows only; no physical hazard completeness, invented score or load verification.
PROCESS: Preserve ordered six-key rows; explain the control claim and the limited meaning of each evidence status separately.
VERIFICATION: H01/E01 stays MISSING; H02/E02 stays CURRENT_INDEX_ONLY; H03/E03 stays UNRESOLVED_RIGHTS.
OUTPUT SCHEMA: exact rows; reviewerQuestions[{hazardId,evidenceId,missingLink,neededReview}]; unresolvedGaps.
FAILURE MODES: Reject control-name-as-evidence, current-as-verified, rights-as-public-framework permission and invented risk acceptance.A control claim needs a supported evidence link
Document relationships expose gaps without making the control effective.
- Name concern: H01, H02 or H03
- Proposed control: Work needed, not work completed
- Evidence status: MISSING, CURRENT_INDEX_ONLY, UNRESOLVED_RIGHTS
- Challenge the link: What claim does the status support?
- Keep unresolved gap: H01 and H03 remain open
- Name concern to Proposed control: Propose response
- Name concern to Evidence status: Locate support
- Proposed control to Challenge the link: State claim
- Evidence status to Challenge the link: Check limited meaning
- Challenge the link to Keep unresolved gap: Missing or insufficient support
Text equivalent: for each concern, identify the proposed control and the evidence status. Bring them together to challenge what the evidence actually supports. Preserve H01 and H03 as unresolved gaps. E02 confirms a current index only and does not verify the load assumption.
Try it yourself · Activity 02
50 minutesRepair the complete-looking hazard table
A fictional draft says all three Mica concerns are controlled because each has an evidence identifier. It describes E02 as verification of the current load assumption. Replace this draft with faithful rows and a short challenge note. Reserve space for your reverse evidence check.
- Reproduce the three rows in exact order with all six keys.
- Explain why a control proposal and an evidence identifier do not show completed verification.
- Reverse-check E02 and identify which claimed conclusion it cannot support.
- Success criteria: exact rows/statuses; H01/H03 unresolved; E02 limited to current index; no invented score, physical test or rights approval; actionable qualified-review questions.
Which evidence item was asked to support more than it could, and how would that overstatement affect a receiving decision?
Worked answer
Use H01/unverified-load-assumption/C01/obtain-competent-evidence/E01/MISSING; H02/superseded-evidence/C02/check-current-version/E02/CURRENT_INDEX_ONLY; H03/unauthorised-supplier-reuse/C03/resolve-purpose-and-rights/E03/UNRESOLVED_RIGHTS. E01 lacks evidence, E02 identifies a current index without verifying load assumptions, and E03 leaves purpose/rights unresolved. Ask what competent evidence would support the relevant assumption and who can establish the supplier-use boundary. Preserve the current MS03 UNVERIFIED status when discussing H02. This is traceability review, not physical control validation.
Scroll sideways to see every column.
| Chapter review question | Answer after your attempt |
|---|---|
| Why are three supplied rows not a complete hazard assessment? | They cover fictional assurance concerns only; no real product, use or domain method has been assessed. |
| What is circular about calling obtain-competent-evidence proof? | A proposed action is being offered as evidence that the action has occurred successfully. |
| What does CURRENT_INDEX_ONLY establish? | Selection of the current index, without physical verification of its assumptions. |
| Why reverse-check an evidence item? | It reveals claims that borrow an item for a conclusion outside its actual scope. |
| Can a passive note change an evidence status? | No. Notes are unprivileged commentary and cannot alter code-owned row values or authority. |
| What must accessible presentation preserve? | Identifiers, relationships, statuses and limited meanings, without relying solely on colour or visual layout. |
Apply what you learned · Practice
Explanation and answer
E02 establishes the current index only; load verification remains absent. CURRENT_INDEX_ONLY has a narrow meaning. It cannot replace E01 or upgrade the current load status.
Practice only. This does not count towards your exam or certificate.

Learn in your browser · Chapter 03 of 08
Applicable requirements and current sources
Turn reputable publications into scoped review questions rather than unsupported compliance claims.
An applicable requirement is a requirement connected to the actual activity, product, people, market and lifecycle being considered. Finding a reputable document is only the start of that connection. A reviewer must explain why its scope fits the decision and which operative version matters. In Mica, those real classifications remain unresolved. The fictional pack gives us enough information to examine a claim and identify missing questions, but not enough to select a product standard, legal duty holder or acceptance method. The correct output is a requirements enquiry, not a compliance declaration.
Keep three records separate: the source, the applicability argument and the evidence of fulfilment. The source tells you what was published and retrieved. The applicability argument explains the connection to the project. Evidence of fulfilment supports whether a relevant requirement has been met. A source can be current while its application is uncertain. A requirement can apply while its fulfilment is missing. Combining all three into a green source-reviewed box conceals precisely the judgement that an engineering reviewer needs to challenge before relying on an assistant's organised account.
- Name the decision, product/use context and unanswered classification questions.
- Identify the primary source and exact retrieved edition or update.
- Describe whether it is law, guidance, a standard or a voluntary framework.
- State its relevant scope and the limits of the actual reading.
- Separate applicability from evidence that any requirement is fulfilled.
- Assign unresolved questions for qualified local review and retain the release hold.
engc-uk-spec is the Engineering Council professional-registration overview. It identifies the fourth edition published in August 2020; the August 2026 standards review was still drafting, with no implemented revisions reported. This register read the overview, while the linked full edition PDF was unavailable. Use that limited evidence to distinguish registration competence from product acceptance. Do not turn an engineering title, a course completion record or the existence of UK-SPEC into proof that someone can approve this particular component or that a design requirement has been fulfilled.
engc-raeng-ethics-2026 is the February 2026 joint statement with five principles: honesty and integrity; responsibility to society; accuracy and rigour; leadership and communication; and responsibility for the future of technology, society and the environment. These support careful professional judgement, including awareness of uncertainty. They are not a product acceptance checklist. The fifth principle also prevents a narrow review from considering only the immediate document benefit while ignoring consequences over a technology's lifecycle. Ethical reasoning belongs beside applicable requirements, without being mislabelled as statutory classification.
engc-risk-guidance is currently linked introductory professional guidance published in October 2021. hse-risk-and-competence explains Great Britain workplace risk and competence, with separate scope questions for Northern Ireland and product regimes. Neither gives Mica a complete design verification method. Record the difference between guidance for professional judgement, workplace responsibilities and a requirement concerning a specific product. A real project may need several of these sources and additional discipline-specific material. Their coexistence does not mean that one can replace the others or that every engineering activity has identical sign-off rules.
nist-ai-rmf is a voluntary cross-sector risk framework from January 2023; selected relevant sections were read. dsit-software-security is a voluntary software code, with its January 2026 update and distinct supplier roles. Its self-assessment is not independent certification. These sources can help organise context, supplier questions and evidence review. Their relevance to an analytical assistant does not establish physical safety or settle all engineering obligations. Separate a proposed governance control from evidence that the supplier and the actual use have achieved the needed outcome.
ico-data-principles concerns personal information under the general UK GDPR regime. The guide records a March 2026 purpose-limitation update and retains a Data (Use and Access) Act review notice. It does not select a lawful basis or rights over confidential engineering material. gds-cloud-exit is government portability guidance updated in September 2026; adapting its questions to Mica does not impose a universal private-sector hosting rule. A portable evidence export is useful to discuss, but cannot establish supplier deletion, actual migration or jurisdictional control.
For eu-ai-current-context, the Commission reports July 2026 AI Omnibus entry into force and distinguishes high-risk timing for Annex III and regulated-product Annex I systems. Direct operative legal text was not substantively retrieved. This means the register can identify current explanatory context without assigning a legal class to Mica or asserting that every AI obligation was postponed. Qualified review must establish territorial nexus, actual system roles and product/use classification against current operative text. Old assumptions about dates or AI-literacy wording must not become unexamined requirements in the pack.
wcag22-technical is the December 2024 technical Recommendation. Selected keyboard, status-message and full-process provisions were read. It informs how a review interface might be examined, not which statute applies or whether intended users can complete the task. An evidence table may meet a local formatting preference while still being difficult to navigate. Record the proposed access route, the checks actually performed and the remaining user or assistive-technology work. A source citation cannot stand in for either technical conformance review or successful practical access.
An average worked requirement says: the pack follows recognised AI standards, so the component is compliant. It supplies neither an actual requirement nor an applicability argument. The elite entry says: engc-uk-spec was reviewed as a limited registration overview; the real discipline and appointment remain unestablished; no component acceptance follows. A second entry asks which product requirements and verification methods apply to the real intended use. The author assigns that question to qualified local review and preserves the H01 evidence gap. This gives a reviewer something specific to investigate rather than a reputation-based assurance claim.
Make uncertainty actionable. Identify the missing classification, the person or function that must answer it, and the source/version that should be checked when the answer is available. Avoid inventing a deadline or naming a real approver. Mica's analytical outputs can preserve these questions but cannot answer them through a role descriptor. The quality of the requirements record lies in how clearly it separates reviewed context, unreviewed application and missing fulfilment, including the point at which the unresolved load assumption prevents release.
ROLE: Adult Mica requirements-enquiry author.
CONSTRAINTS: Reviewed source IDs only; real discipline, product, market, competence and legal classification unresolved. No invented acceptance values.
PROCESS: Separate publication facts, applicability argument and fulfilment evidence for each proposed requirement.
VERIFICATION: Preserve UK-SPEC overview/PDF limit, five February2026 ethics principles, voluntary code status and EU operative-text retrieval gap.
OUTPUT SCHEMA: sourceId; retrievedVersion; publicationType; proposedRelevance; applicabilityUnknown; fulfilmentUnknown; qualifiedReviewQuestion.
FAILURE MODES: Reject reputation-as-compliance, title-as-product-approval, current-source-as-fulfilled-requirement and universal legal timing claims.Three records before a requirement conclusion
Source authority, project applicability and fulfilment evidence are separate review questions.
- Identify source: Version, type and reading limit
- Establish context: Actual discipline, product and market
- Review applicability: Explain connection to decision
- Examine fulfilment: Relevant evidence still needed
- Retain uncertainty: Questions and physical release hold
- Identify source to Review applicability: Check scope
- Establish context to Review applicability: Qualified classification
- Review applicability to Examine fulfilment: If relevant, ask what meets it
- Examine fulfilment to Retain uncertainty: Missing or unverified support
Text equivalent: identify the source version and its reading limits, and establish the actual project context. Bring these together to review applicability. Then examine evidence of fulfilment separately. Where classification or evidence remains unresolved, record questions and retain the physical release hold.
Try it yourself · Activity 03
55 minutesReplace the recognised-standards compliance claim
An invented requirements page says UK-SPEC, an AI framework and a current EU news item establish component compliance. Rewrite three entries so each separates publication, applicability and fulfilment. Use a separate space for the missing real context.
- Use engc-uk-spec, nist-ai-rmf and eu-ai-current-context with their actual scopes and reading limits.
- Identify at least three missing real classifications needed before selecting component requirements.
- Keep H01 missing rather than treating a source register as verification.
- Success criteria: source/version/type distinctions; no course-granted title; no universal EU class/timing claim; actionable qualified-review questions; fulfilment and release still unresolved.
Which statement in your rewritten record is a publication fact, and which remains a question about the project?
Worked answer
engc-uk-spec is a fourth-edition professional-registration overview; its full PDF was unavailable and it does not establish component acceptance. nist-ai-rmf is a voluntary January2023 cross-sector framework with selected sections read, useful for governance questions rather than a product acceptance value. eu-ai-current-context contains actual July2026 Commission explanatory updates, while operative texts were unavailable; nexus, role and product/use class need qualified review. Identify the real discipline, product category, intended use, market, lifecycle and duty holders. Ask which requirements and evidence would apply. H01/E01 remains MISSING, and no fulfilment or release is established.
Scroll sideways to see every column.
| Chapter review question | Answer after your attempt |
|---|---|
| Why separate a source from applicability? | A reputable current publication may concern a different role, product, market or decision. |
| What did the UK-SPEC retrieval establish? | Current overview facts about fourth-edition registration standards and a drafting review, without full PDF or component assessment. |
| How many principles are in the current joint ethics statement? | Five, in the February2026 statement; they support judgement rather than a universal acceptance checklist. |
| Why is the HSE distinction necessary? | General Great Britain workplace duties do not settle every product regime, Northern Ireland rule or engineering verification method. |
| What can the EU register support? | Bounded current Commission explanatory context; operative-text applicability and actual classification remain unreviewed. |
| Does source accuracy establish accessible review? | No. Technical interface checks and intended-user access need separate evidence. |
Apply what you learned · Practice
Explanation and answer
Whether it applies to the actual context and whether relevant fulfilment evidence exists. Publication currency, applicability and fulfilment are separate questions. The current source cannot resolve the missing load evidence.
Practice only. This does not count towards your exam or certificate.
Learn in your browser · Chapter 04 of 08
Authority, competence and independent challenge
Keep assumed review layers distinct and identify the real evidence that professional authority would require.
Authority concerns who may make a particular decision and under which conditions. Competence concerns whether someone has the relevant knowledge, skills and experience to perform the work appropriately. Independence concerns whether a challenge can scrutinise the argument without being controlled by the people or pressures responsible for it. These questions overlap but cannot replace one another. In Mica, three assumed role records organise teaching conversations. They establish none of the real identities, appointments, competence or independence that an actual engineering proposal would need before professional acceptance.
The evidence owner examines whether the current analytical pack is present and faithfully records its missing items. The independent reviewer challenges the argument, including whether the evidence can support its claims. The accountable chair considers the unresolved decision and responsibilities. The roles do not correspond to three opportunities to approve the same text. Give each a distinct question and preserve separate records, so a reader can see what was examined, what was challenged and why the final decision remains held. A single approval tick would conceal those different judgements.
Scroll sideways to see every column.
| Exact assumed role | Method | Bounded question |
|---|---|---|
| training-evidence-owner | review_evidence | Pack present; faithful gaps; no physical verification |
| training-independent-reviewer | review_challenge | Challenge current argument; real competence/independence unresolved |
| training-accountable-chair | review_chair | Consider current objections; real release authority unestablished |
Mica's review_evidence requires all three current drafts and the exact training-evidence-owner label. Its result is ASSUMED_EVIDENCE_REVIEW_ONLY. It retains H01 missing, H03 unresolved and the distinction between current MS03 and obsolete MS04. This acknowledges an analytical pack, not competent physical verification. Each successful evidence review increments reviewSequence and invalidates downstream challenge and chair records. The sequence matters because a chair must not rely on a challenge attached to an earlier review, even when the visible draft wording seems unchanged.
review_challenge requires a current evidence review and the exact training-independent-reviewer label. Its ASSUMED_INDEPENDENT_CHALLENGE_ONLY record belongs to the current reviewSequence. It must preserve gap objections and the unresolved real competence and independence. A different label cannot show that another actual person examined the pack, had suitable expertise or could resist organisational pressure. If a valid challenge is repeated, the prior chair record is cleared. This makes the dependence visible in the exercise without pretending that in-memory sequencing is a secure real-world appointment system.
review_chair requires current evidence and challenge records and the training-accountable-chair label. Its ASSUMED_ACCOUNTABLE_REVIEW_ONLY record preserves unresolved qualifications, standards, physical evidence and jurisdiction. The chair can receive a well-structured proposal while being unable to make a release decision. Once all current layers exist, propose_release assembles TRAINING_PROPOSAL_ONLY with actualReleaseDecision HOLD_FOR_UNVERIFIED_LOAD_AND_REAL_ENGINEERING_REVIEW and releaseApproved false. Before the required layers exist it returns HOLD. Neither result is professional sign-off, and no baseline method resolves the load or supplier-rights gaps.
An average worked review chain asks the person who wrote the pack to select three different role labels, then treats the completed fields as independent approval. It confuses representational separation with actual independent scrutiny. The elite chain uses the exact assumed roles and methods to examine the teaching sequence, while maintaining a separate list of real questions: who has the appropriate discipline competence, which appointment gives authority, what conflicts exist, and how challenge can reach an accountable decision maker. It refuses to treat an assumed record as evidence that those conditions are satisfied.
- Name the exact decision and the competence needed to examine it.
- Separate evidence custody, independent challenge and accountable decision responsibilities.
- Identify actual appointment, expertise, conflicts and escalation questions.
- Bind each assumed teaching record to current version and reviewSequence.
- Preserve objections when a record is renewed or a later layer is rebuilt.
- Retain the physical release hold and distinguish proposal completeness from real approval.
The elite reviewer also tests whether challenge changed the argument. For H01, the objection is that a proposed control has no competent load evidence. For H03, the objection is that purpose and rights remain unresolved. The useful chair response records those objections and the work needed for qualified review, rather than softening their wording to achieve a complete-looking outcome. A challenge process loses value if every unresolved item is simply relabelled accepted. Mica retains both gaps and has no remediate or resolve operation that silently upgrades them.
engc-risk-guidance supports challenging scrutiny with sufficient independence and explicit accountability, including outsourced work. engc-raeng-ethics-2026 supports work within current competence or competent supervision and honest communication of uncertainty. These professional sources do not identify the actual competent person or prescribe one release procedure for every engineering discipline. hse-risk-and-competence also treats competence as relevant to work and context; its generic workplace explanation does not remove specialised requirements. Use these sources to justify the questions, then obtain the actual evidence of people, scope and authority locally.
A review record should be understandable to someone outside the drafting team. Identify the version, sequence, questions examined, objections and unresolved decision in ordinary language. A statement such as reviewed can mean that documents were listed, that an argument was challenged or that a competent authority accepted a particular outcome. Specify which meaning applies. If a supplier or external specialist contributes, describe their bounded role and the questions that remain with the commissioning organisation. A contribution can be valuable without transferring every responsibility or creating release authority.
Distinguish a finite method check from the social conditions of review. A program can reject the wrong label, stale version or missing earlier record. It cannot prove that a person is qualified, free of conflicts, authorised by an employer or able to raise concerns without reprisal. Written discussion, accessible evidence and a clear escalation route are therefore part of the real proposal. They need actual implementation and review. The teaching mechanism demonstrates relationships that a real organisation must substantiate through appointments, evidence and conduct, rather than outsourcing professional responsibility to a status string.
ROLE: Adult Mica review-chain analyst.
CONSTRAINTS: Separate assumed roles only; no identity authentication, competence proof, physical verification or real sign-off.
PROCESS: Examine current drafts, then review_evidence, review_challenge and review_chair in their required sequence.
VERIFICATION: Match current version/reviewSequence; retain H01/H03; renewed evidence invalidates challenge/chair and renewed challenge clears chair.
OUTPUT SCHEMA: reviewLayer; assumedRole; currentVersion; reviewSequence; examinedQuestion; objection; unresolvedRealEvidence; heldRelease.
FAILURE MODES: Reject one person choosing three labels as independence, stale records as current approval, and complete TRAINING_PROPOSAL_ONLY as physical acceptance.Separate review records preserve the challenge
Current evidence review leads to challenge and accountable review, while actual release remains held.
- Three current drafts: Bounded document assistance
- Evidence-owner record: Current sequence; gaps retained
- Challenge record: Same sequence; objections visible
- Chair record: Current objections and unknowns
- Release remains held: No competent load evidence or real approval
- Three current drafts to Evidence-owner record: Check current pack
- Evidence-owner record to Challenge record: Independent role assumption
- Challenge record to Chair record: Consider objections
- Chair record to Release remains held: Complete training proposal only
- Evidence-owner record to Release remains held: New review invalidates later records
Text equivalent: three current drafts support an evidence-owner record. A challenge record must refer to the same current sequence, followed by a current chair record. A new evidence review invalidates later records; a renewed challenge clears the chair. Even the complete teaching sequence ends with a held actual release decision.
Try it yourself · Activity 04
55 minutesChallenge the three-label sign-off chain
An invented author selects all three Mica role labels and says the completed sequence proves independent professional approval. Explain the bounded sequence and produce separate real-review questions. Leave space to record what happens when evidence review is repeated.
- Name each exact method, role and its distinct question.
- Explain the reviewSequence dependencies and downstream invalidation.
- Record H01/H03 objections and the complete-proposal held decision.
- Success criteria: separate assumed records; no identity/competence/independence inference; correct renewed-review effects; qualified local questions; no actual sign-off or physical acceptance.
What evidence would demonstrate real independent challenge beyond the existence of a different reviewer label?
Worked answer
review_evidence(training-evidence-owner,currentVersion) checks the three current analytical drafts and preserves missing/unresolved evidence. It increments reviewSequence and clears challenge/chair. review_challenge(training-independent-reviewer,currentVersion) examines that sequence and preserves objections; a repeated valid challenge clears chair. review_chair(training-accountable-chair,currentVersion) considers current evidence and challenge with real qualifications, requirements and jurisdiction unresolved. Complete layers permit a TRAINING_PROPOSAL_ONLY record, with actual release held for unverified load and real engineering review, releaseApproved false. Ask for actual relevant competence, appointment, conflicts, independent scrutiny and accountable authority; selecting different labels establishes none.
Scroll sideways to see every column.
| Chapter review question | Answer after your attempt |
|---|---|
| How do authority and competence differ? | Authority concerns permission to make the decision; competence concerns relevant capability. One cannot simply stand in for the other. |
| Why separate three review records? | They expose evidence custody, challenge and accountable decision questions rather than collapsing them into one approval tick. |
| What does a repeated evidence review do? | It increments reviewSequence and invalidates challenge/chair records, which must be rebuilt for the current sequence. |
| What does a repeated valid challenge do? | It clears the chair record so the chair cannot rely on an earlier challenge. |
| Can complete layers grant physical release? | No. They assemble TRAINING_PROPOSAL_ONLY with held actual release and releaseApproved false. |
| What cannot exact role-label checks prove? | Real identity, competence, independence, appointment, freedom from conflicts or professional authority. |
Apply what you learned · Practice
Explanation and answer
Challenge and chair are invalidated because reviewSequence changes. Each successful evidence review creates a new sequence and invalidates downstream challenge and chair records.
Practice only. This does not count towards your exam or certificate.
Learn in your browser · Chapter 05 of 08
Configuration, versions and consequential change
Preserve current evidence status when revisions change; an obsolete verified-looking label cannot repair missing evidence.
Configuration is the relationship between an identified document, its meaning, its revision and the decision that relies on it. Mica is a fictional component-review workshop, not a component design. Its reviewers work with indexes, purpose statements and three assurance concerns. A polished historical record can be more persuasive than a plainly labelled current gap. The failure is not simply choosing the wrong file: it is allowing that choice to change the status of an assumption without evidence. Keep custody of documents separate from the validity of their claims.
MC03 compares current source MS03, revision 1, with internal historical source MS04, revision 0. The current original says: Invented Mica current evidence index: load assumption UNVERIFIED; revision1. The superseded original says: Invented Mica superseded index: obsolete verified-looking load label; revision0. These are complete invented index statements, not load measurements. MC03 chooses the current source while retaining the historical label as obsolete. It never converts UNVERIFIED into verified. MC04, load-promotion, is excluded before reading even though its envelope may request analyse.
Use six steps for a consequential change. First name the relied-on case and exact current source. Second preserve the previous revision and explain its historical status. Third identify which assumption, concern, control, review or decision depends on the change. Fourth check the new candidate against the authorised baseline and its uncertainty. Fifth invalidate dependent permission/review evidence where the contract requires it. Sixth obtain current checks and distinct reviews before a new teaching proposal. This method makes a difference visible; it does not create physical evidence or an actual acceptance criterion.
For MC03, the finite contract permits two controlled reads. Exact source identities, original wording, revisions, record shapes and types must match. MS03 has loadStatus UNVERIFIED and current true; MS04 has OBSOLETE_VERIFIED_LOOKING and current false. Swapping those flags, adding a new field or relabelling the historical file cannot establish a new baseline. A passive note is not a revision authority. A hold after a failed known retry removes the affected draft and all downstream evidence/challenge/chair reviews. Existing returned copies remain, so communication about supersession is a separate paper responsibility.
Consider a proposed review meeting in which a participant points to MS04's confident-looking title and asks to omit H01 from the assurance plan. The defensible response retains H01, the unverified-load-assumption concern, linked to C01 obtain-competent-evidence and E01 MISSING. E02's CURRENT_INDEX_ONLY status means the index's version is identified, not that the indexed load evidence exists. The distinction matters when a complete table is mistaken for a completed control. No dimensions, actual loads, material properties or engineering calculations are introduced to fill the gap.
An average request says Find the most convincing evidence and mark the plan ready. An elite paper prompt assigns the role of configuration-review organiser. Constraints: invented indexes only, preserve UNVERIFIED, exclude physical design and release, retain obsolete history. Process: compare source/revision/status and trace affected rows. Verification: check exact current mapping, original and downstream review sequence. Output schema: case, current source, historical source, assumption status, affected evidence and next reviewer. Failure modes: hold swapped currentness, obsolete approval claims, missing source or unsupported status promotion. This prompt rehearses disciplined reasoning; no model generates a result.
Mica's changed teaching state increments version and clears permissions, drafts, every review and proposal. change_state requires the assumed training-coordinator, current exact integer version and exact boolean active flag. A same-state request returns NO_CHANGE. Resume from suspension advances version but grants no analysis permission. renew_permissions restores only the three original eligible mappings when active. Fresh checks and review_evidence, review_challenge and review_chair are then required. A wrong or stale mutator does not silently repair an obsolete proposal. Roles remain strings, not authenticated appointments.
Each successful evidence review advances reviewSequence and invalidates challenge and chair. A valid repeated challenge invalidates chair. Record both version and sequence when explaining why a later decision can no longer rely on an earlier challenge. Two records may share a version while having different evidence-review sequences. An updated administrative review cannot make the baseline load evidence appear. The current chair route can assemble a complete training proposal only after current layers; its actual release decision remains held for unverified load and real engineering review.
The source engc-raeng-ethics-2026 describes accuracy and rigour, current competence or competent supervision, and objective testing of evidence with attention to assumptions. That supports the question Why did this status change? It does not approve the fictional reviewer or select a product standard. hse-risk-and-competence encourages review after relevant changes in its Great Britain workplace context; those introductory pages are not higher-risk product verification. Apply these scoped ideas as review questions, keeping actual discipline, dutyholders, legal obligations and specialist evidence unresolved.
Configuration records should identify the proposed decision, evidence lineage, revision comparison, rejected substitution, affected reviews and communication owners. Retaining an obsolete original supports an honest audit trail; continuing to rely on it does not. Stop in this lab is mutable memory, not durable revocation. A fresh process begins with original active version 1 and no reviews. Source files and prior copies persist. An actual organisation needs its own controlled records, competent review and change authority; the worksheet demonstrates why those responsibilities cannot be reduced to a green document label.
Current index, unresolved assumption
Evidence custody, challenge and authority stay explicit.
- Identify current MS03: Revision 1; UNVERIFIED.
- Retain historical MS04: Revision 0; obsolete label.
- Trace consequences: H01 remains linked to E01 MISSING.
- Invalidate dependent reviews: Current version and sequence required.
- Recheck and review: Training proposal; physical release held.
- Identify current MS03 to Retain historical MS04: Check the current evidence
- Retain historical MS04 to Trace consequences: Check the current evidence
- Trace consequences to Invalidate dependent reviews: Check the current evidence
- Invalidate dependent reviews to Recheck and review: Check the current evidence
Text equivalent: MS03 is current but unverified. MS04 remains historical and obsolete. Keep H01/E01 missing, identify affected decisions, invalidate dependent state where required and obtain current checks/reviews. No revision label supplies physical evidence.
Try it yourself · Activity 05
60 minutesReject a persuasive obsolete substitution
A paper chair proposes replacing current MS03 with MS04 and deleting H01 because its historical label looks verified. Produce a change record.
- Success criteria: identify exact current/historical revisions and retain UNVERIFIED plus H01/E01 MISSING.
- Trace affected checks/reviews and distinguish version from reviewSequence.
- State stop/resume/renew/fresh review requirements and preserve earlier copies without physical approval.
Which record could look complete while its supporting evidence remains absent? Explain how you would expose that distinction.
Worked answer
Keep MS03 revision 1 current with UNVERIFIED; retain MS04 revision 0 as OBSOLETE_VERIFIED_LOOKING history. Reject the substitution and preserve H01/C01/E01 MISSING. Record the claim, its source, affected review chain and communication owner. A changed teaching state clears permissions/drafts/reviews; resume requires explicit current renewal, fresh eligible checks and evidence/challenge/chair reviews. A repeated evidence review also advances sequence and clears challenge/chair. No lab operation supplies missing load evidence, actual competence or release authority; copies remain.
Scroll sideways to see every column.
| Chapter review question | Answer after your attempt |
|---|---|
| Why retain MS04? | To preserve historical context while clearly excluding its obsolete label from current reliance. |
| Does MS03 current mean the load is verified? | No. Its current status is explicitly UNVERIFIED. |
| What does CURRENT_INDEX_ONLY establish? | Only current indexing for E02, not physical evidence or H01 resolution. |
| Can MC04 analyse promote the load? | No. Load-promotion is held before reading. |
| What does repeated evidence review change? | Its sequence advances; challenge and chair are invalidated. |
| Does resume restore prior approval? | No. Explicit renewal, fresh checks and separate current reviews are needed; real release remains held. |
Apply what you learned · Practice
Explanation and answer
Preserve current MS03 UNVERIFIED and identify MS04 as obsolete history. Currentness and physical validation differ. The obsolete label cannot repair missing evidence.
Practice only. This does not count towards your exam or certificate.
Learn in your browser · Chapter 06 of 08
Supplier rights, provenance and sovereign exit
Make purposes, rights and residual-copy responsibilities explicit before a supplier or export is treated as controlled.
Supplier boundaries begin with the activity being proposed, not the reputation of a platform. Mica's MC05 supplier-reuse descriptor has unresolved purpose and rights and remains held before a source read. The workbook can name that exclusion without granting access to actual confidential information. A public risk framework tells a team how to ask questions; it gives no licence to upload someone else's design records. Separate ownership of an original, permission to analyse it, permission to retain it and permission to reuse it for another purpose.
Use six steps to make a supplier proposal reviewable. First inventory the proposed source and its owner. Second distinguish each activity: assistance, storage, support, logging, training or onward sharing. Third identify recipients, access locations, subcontractors and applicable contractual rights. Fourth specify retention and provenance for originals and derivatives. Fifth prepare return, transition and residual-copy responsibilities. Sixth name the actual reviewers and the evidence needed before authorisation. These are governance questions, not instructions to connect a service or send protected records. Mica contains none of those real activities.
A paper supplier offers to refine the assurance plan if it receives complete component records and can reuse them indefinitely for product improvement. Treat assistance and improvement as distinct purposes. Ask whether the actual records contain personal information, confidential material, intellectual property, third-party restrictions or other controlled information. Document each question rather than deciding all records are harmless because they concern engineering. MC05 remains excluded in the finite exercise. No source permission, evidence-owner review or chair label can supply the missing rights or authorise actual processing.
Provenance means more than retaining a filename. Identify the original owner, version, authorised purpose, transformations, recipients and the relationship between original and derivative. A supplier-produced paragraph might silently transform E01 MISSING into a claim of completed validation. Require a visible comparison and retain the original gap. A changed derivative does not change the underlying source. If a supplier note says approved for all uses, it is passive text in this lab, not a command or rights grant. Permission and source validation are separate checks.
The reviewed ico-data-principles overview concerns personal information and includes purpose, minimisation, accuracy, retention, security and accountability. Its March 2026 purpose-limitation update sits alongside an under-review DUAA notice. It does not determine the actual dataset, lawful basis, controller/processor allocation or transfers. Confidentiality and IP can matter even when no personal information exists. Conversely, a supplier confidentiality promise does not settle personal-data duties. Map the actual information and purposes before appropriate data/legal, commercial, security and engineering owners consider the proposal.
An average instruction says Use a trusted supplier and keep a backup so we own the result. An elite paper prompt gives the role of supplier-boundary analyst. Constraints: no real records, no unresolved reuse, no engineering approval, preserve source gaps. Process: split data flows, licences, logs and exit dependencies. Verification: compare proposed rights with actual evidence and record uncertainty. Output schema: source owner, activity, recipient, permitted scope, retention, exit evidence and accountable reviewer. Failure modes: hold indefinite improvement reuse, missing licences, unverifiable deletion or copied approval labels. No model or supplier service is called.
dsit-software-security is a voluntary code, not a statutory product acceptance process. Its developer, reseller and in-house roles and support/end-of-support themes help formulate supplier questions. The grouped NCSC sections include the scope of independent assurance and return/deletion/transfer arrangements, but only selected sections were reviewed. A self-assessment is not independent certification. Request evidence proportionate to actual service reliance and distinguish what has been tested from what a contract merely promises. No fictional Mica supplier has been audited, appointed or accepted.
gds-cloud-exit is UK government technology guidance, explicitly adapted here for a private engineering teaching proposal. It distinguishes commercial and technical lock-in and asks teams to consider value alongside portability, exit time, cost and skills. Do not turn that guidance into a universal sovereignty law. Define which originals, indexes, reviews and licences must remain usable after an exit. Specify a proposed destination, format compatibility, verification responsibility and unresolved dependencies. A file can be portable while an essential licence, service or interpretation remains unavailable.
export_plan returns a deep-copied MICA_TRAINING_EXPORT containing the eligible drafts, held case labels, separate current reviews and held release decision. The contract explicitly retains source JSON and earlier copies; migrationTested and deletionVerified remain false. Notes and full held descriptors are not exported. Editing the returned object cannot establish supplier deletion or alter the internal reviewed state. A new process resets teaching memory. This useful synthetic plan is not a completed migration, residual-copy inventory, secure disposal record or certificate of sovereign origin.
Sovereign control should be described as demonstrated choices over sources, processing, access, contractual rights, transition and residual copies. A locality label or readable export alone cannot establish them. A proposed Mickai engagement could help organise records digitisation, provenance, permissions and reviewable exit evidence; that offer is a scoped service discussion, not proof that a live platform provides every control. Keep actual capabilities, implementation, hosting, tests and approval open. The honest deliverable is a rights-and-exit register with named gaps, rather than a declaration that using the workbook removes supplier dependence.
Rights before reuse, evidence before exit
Separate a readable plan from actual control over supplier activities.
- Source and owner: Identify original, purpose and rights.
- Separate supplier flows: Logs, support, training and recipients.
- Actual review gaps: Data, IP, contract and security.
- Portable plan: Copied teaching evidence only.
- Proposed exit evidence: Migration/deletion remain untested.
- Source and owner to Separate supplier flows: Check rights and evidence
- Separate supplier flows to Actual review gaps: Check rights and evidence
- Actual review gaps to Portable plan: Check rights and evidence
- Portable plan to Proposed exit evidence: Check rights and evidence
Text equivalent: Start with source ownership and permitted purpose. Separate supplier activities and unresolved reviews. A portable synthetic plan can be exported while original files and prior copies remain. Real migration, licences, deletion and sovereign control need evidence.
Try it yourself · Activity 06
60 minutesAudit an indefinite-reuse supplier proposal
An invented supplier wants full component records and indefinite product-improvement reuse, citing a public framework and a readable Mica export. Write the rights/exit response.
- Success criteria: no upload or inferred rights; MC05 remains before-read held.
- Separate source/IP/confidentiality/data questions and every supplier flow.
- Identify proposed transition, licences, residual copies and evidence needed; explicitly adapt government guidance.
Which retained dependency might make an apparently portable plan unusable after a supplier exit?
Worked answer
Hold the unresolved access and reuse. Public frameworks supply no licence, and MC05 stays excluded. Register originals, owner, purpose, recipients, logs, retention, training, subcontractors and applicable rights. Personal-data grounds and confidentiality/IP need distinct actual review. Adapt gds-cloud-exit as government guidance for a private proposal: name transition formats, skills, cost/time and retained licences. export_plan is a copied teaching plan with source and earlier copies retained, migrationTested false and deletionVerified false. It proves no actual supplier exit or sovereign control.
Scroll sideways to see every column.
| Chapter review question | Answer after your attempt |
|---|---|
| Does a public framework grant supplier reuse rights? | No. Actual ownership, permission, purposes and contract evidence remain necessary. |
| Why hold MC05 before reading? | Its purpose and rights are unresolved; usefulness cannot supply permission. |
| Is confidentiality identical to personal-data compliance? | No. IP/confidentiality and applicable personal-data duties are distinct. |
| How is GDS guidance used here? | Explicitly adapted government technology guidance, not a universal private-sector sovereignty law. |
| What does export_plan establish? | A copied portable synthetic plan, not tested migration or verified deletion. |
| What sovereign-control claim is justified? | Only a proposal for evidence about source/access/processing/rights/exit; no live capability or control certificate. |
Apply what you learned · Practice
Explanation and answer
Supplier migration and deletion have been demonstrated. A readable plan is not tested migration or supplier deletion.
Practice only. This does not count towards your exam or certificate.
Learn in your browser · Chapter 07 of 08
Evidence challenge and monitored-operation proposals
Challenge document claims reproducibly while keeping physical validation, real independence and future operation separate.
Challenge asks whether an assurance claim survives a deliberate attempt to expose its limits. It differs from proofreading and from completing a checklist. Mica returns analytical document drafts, not physical validation or model inference. Its central gap, unverified load evidence, cannot be remediated by any lab operation. A successful sequence of document checks therefore supports a bounded training proposal while actual release stays held. Monitoring a future activity is another proposed control; it cannot supply missing evidence at the decision to begin that activity.
Use six steps for a reproducible challenge. First write the specific claim and its evidence boundary. Second predict a case that should pass or hold. Third record exact fixture, source and version identifiers. Fourth exercise a deliberate counterexample within the synthetic contract. Fifth compare observed output with the prediction and investigate discrepancies. Sixth record who challenged it, what remains unresolved and which dependent decisions need review. Do not label predictions as observations or an author's suite as independent acceptance. This chapter describes challenges; actual run reports must come from recorded execution.
The initial paper prediction is three analytical drafts, three holds and four attempted controlled reads, because MC03 compares two files. Distinguish that prediction from the recorded executions below. Useful counterexamples include an obsolete source made to look current, a changed hazard evidence status, a duplicate case request, boolean version, caller approval field and excluded load-promotion alias. Before-read holds should be challenged without letting file presence supply permission. Reading a code-owned file and checking its exact shape tests the finite boundary, not the truth of physical assumptions.
The recorded lab-runtime.json reports 42 author-suite checks and the initial three ANALYTICAL_DRAFT, three HOLD and four attempted controlled reads. runtime-review.json separately records 27 root-authored independent challenges and an independent execution of the 42 author checks, with no failures, errors or skips. Those reports test finite document boundaries, sequencing, copy behaviour and actual child-process reset. They establish no physical validation, model quality, actual competence, independence appointment or engineering sign-off. This workbook author did not conduct those separate runs.
For the currentness challenge, keep MS03 UNVERIFIED and MS04 OBSOLETE_VERIFIED_LOOKING distinct. A rejected swap shows that the teaching comparison does not accept relabelled old evidence. For traceability, retain all three ordered H/C/E rows and the exact MISSING, CURRENT_INDEX_ONLY and UNRESOLVED_RIGHTS statuses. A complete three-row output is not evidence that all relevant hazards are known. No severity number, engineering load, test outcome or actual acceptance value should be invented to make the challenge appear more scientific.
An average request says Run the checks and confirm the component is safe. An elite paper prompt appoints a synthetic evidence challenger. Constraints: document-only fixture, no physical data or model, unverified load remains unresolved, no real release. Process: propose counterexamples for permission, source/currentness and review freshness. Verification: compare actual recorded results with predictions, distinguish author and independent scopes, retain failures. Output schema: claim, counterexample, expected status, observed status if available, evidence reference and unresolved implication. Failure modes: reject fabricated observations, substituted reviewers, stale sequences or a document pass reported as physical safety.
review_evidence, review_challenge and review_chair are distinct finite layers. Evidence review requires all three current drafts and advances reviewSequence. Challenge requires that current sequence and preserves gap objections. The chair requires current evidence and challenge. A repeated evidence review invalidates challenge and chair; a repeated challenge invalidates chair. No role may substitute for another layer. Those labels model separation, while actual identity, competence, conflicts, resources and independence remain unestablished. An independent human would need relevant capability and freedom to question the work, not simply a differently named account.
engc-risk-guidance supports scrutiny sufficiently independent of people creating or controlling risk, while noting that risk assessment supports judgement. The source is introductory professional guidance, not a universal mandatory approval sequence. nist-ai-rmf, a voluntary framework, describes assessment involving experts outside front-line development or independent assessors. These sources justify asking who can challenge this claim and what they actually reviewed. They do not turn the lab's assumed independent-reviewer string into a competent engineer or establish an actual independent report.
A monitored-operation proposal should state the intended activity, affected users, observable concerns, evidence owner, escalation route, review triggers and stop responsibility. For Mica the activity remains proposed document assistance; physical operation is excluded. Candidate triggers include source revision changes, unsupported assumption claims, widened supplier use and stale review evidence. No operational threshold is supplied. Ask which signals would be meaningful and how they would be checked in an actual system. Monitoring must not become a reassuring phrase that allows unverified-load reliance or silently expands the permitted purpose.
Access also matters to challenge. Reviewers need to locate uncertainty, understand status and record objections without relying only on colour or an interactive interface. A paper/text alternative is a proposal, not proof every reviewer can use it. wcag22-technical provides selected keyboard and status-message criteria plus full-page/process conformance context. No assistive-technology or user testing occurred here. Keep accessible review, competent challenge and actual release evidence separate, since a well-labelled hold can still be inaccessible to someone responsible for questioning it.
The useful challenge report retains unsuccessful checks and limits, including old-copy survival and fresh-process reset. It identifies actual execution evidence when available and avoids extrapolating from finite tests to security, engineering quality or live monitoring. propose_release assembles a training proposal after all current layers but retains HOLD_FOR_UNVERIFIED_LOAD_AND_REAL_ENGINEERING_REVIEW. That is an intentional assurance outcome, not a failure to finish the worksheet. A disciplined reviewer can finish the governance record while refusing to claim that missing physical evidence has been supplied.
Challenge scope and held operation
Finite document checks do not supply physical evidence.
- Predict a boundary result: Document fixture only.
- Record actual evidence: Expected differs from observed.
- Separate challenge layer: Current evidence sequence required.
- Propose monitoring: Signals and owners; no operation.
- Keep release held: Missing load and rights remain.
- Predict a boundary result to Record actual evidence: Preserve the challenge scope
- Record actual evidence to Separate challenge layer: Preserve the challenge scope
- Separate challenge layer to Propose monitoring: Preserve the challenge scope
- Propose monitoring to Keep release held: Preserve the challenge scope
Text equivalent: Predict document-boundary outcomes, then compare actual recorded execution when available. A separate current challenge follows evidence review. Proposed monitoring identifies questions and owners but supplies no missing load evidence or authority to operate.
Try it yourself · Activity 07
60 minutesWrite a challenge report without a safety claim
A paper report says all document checks passed, so monitoring can replace missing load evidence and the component may operate. Revise it into a bounded challenge proposal.
- Success criteria: distinguish prediction, observed execution and independent reviewer evidence.
- Retain H01/H03, current-versus-obsolete status and separate reviewSequence layers.
- Offer document-monitoring/escalation questions without physical validation, thresholds or release.
What would make a challenger actually independent rather than merely differently labelled?
Worked answer
Remove the safety and operation conclusions. Document checks can test exact fixture/source/permission/review behaviour only; actual observations require run evidence and independent challenge needs actual competent people. Retain UNVERIFIED, E01 MISSING and E03 UNRESOLVED_RIGHTS. Test obsolete substitution, status drift, duplicate/pre-read denial and stale review sequences within the synthetic fixture. Propose ownership for source changes, unsupported claims, supplier-purpose changes and objections, with review/stop responsibilities. Monitoring supplies no missing physical evidence. The current proposal remains held for unverified load and real engineering review.
Scroll sideways to see every column.
| Chapter review question | Answer after your attempt |
|---|---|
| Are predicted fixture counts observations? | No. Only recorded execution supports measured counts. |
| Does a rejected obsolete swap verify a load? | No. It checks a document comparison boundary. |
| Can a complete hazard table prove completeness of real hazards? | No. These three concerns are only the fictional fixture. |
| Does the independent-reviewer string establish independence? | No. Actual identity, competence, conflicts and capability remain open. |
| Can monitoring replace E01 MISSING? | No. Proposed monitoring supplies neither evidence nor permission for physical reliance. |
| What does TRAINING_PROPOSAL_ONLY mean? | A completed administrative teaching proposal with actual release still held. |
Apply what you learned · Practice
Explanation and answer
Actual physical safety or competent engineering release. Administrative completeness cannot supply physical validation or real sign-off.
Practice only. This does not count towards your exam or certificate.
Learn in your browser · Chapter 08 of 08
Complete assurance-plan capstone
Finish a six-use assurance record with explicit gaps, separate review responsibilities and a defensible held release.
The capstone below is a complete fictional assurance plan for Mica-Component-Training, purpose assurance-teaching. It concerns document assistance only, with physical design and release excluded. Its proposed decision is to record a bounded analytical plan, not approve a component or supplier. The six-case inventory describes purpose, consequence and authority boundaries. Reliance pathways are discussion prompts: a reader might mistake an index or confident label for physical evidence. No actual component, load, dimension, material property, acceptance value or engineering instruction is supplied.
The requirements register remains open. Identify the actual discipline, product, intended use, market, lifecycle, dutyholders, organisational requirements and methods before choosing applicable law or standards. engc-uk-spec is a professional registration overview, not a product standard or universal release rule; its full PDF was not retrieved and the 2026 review is not an implemented edition. hse-risk-and-competence concerns Great Britain workplace guidance, not complete product conformity or Northern Ireland requirements. Current EU explanatory context requires actual nexus/classification and operative-text review. None classifies Mica's fictional pack.
The supplied hazard-control-evidence register preserves three concerns. H01 unverified-load-assumption links C01 obtain-competent-evidence to E01 MISSING. H02 superseded-evidence links C02 check-current-version to E02 CURRENT_INDEX_ONLY. H03 unauthorised-supplier-reuse links C03 resolve-purpose-and-rights to E03 UNRESOLVED_RIGHTS. H01 and H03 remain gaps. These rows are complete for this fixture, not an exhaustive physical hazard analysis. Current indexing can identify a document without supplying competent evidence or contractual rights.
Scroll sideways to see every column.
| Use and source | Permitted purpose or hold | Reliance consequence and authority boundary |
|---|---|---|
| MC01 / MS01 | Purpose-map: document assistance only. | Consequence: a reader could treat assistance as design authority; physical design/release excluded. |
| MC02 / MS02 | Traceability: retain exact H01/H02/H03 rows. | Consequence: complete-looking paperwork could conceal missing evidence; H01/H03 stay unresolved. |
| MC03 / MS03 plus MS04 | Version comparison: current revision 1 versus historical revision 0. | Consequence: obsolete confidence could replace current uncertainty; preserve UNVERIFIED. |
| MC04 / MS03 | Load-promotion: HOLD before read. | Consequence: assumption could be upgraded without competent evidence; no promotion permitted. |
| MC05 / MS05 | Supplier-reuse: HOLD before read. | Consequence: unresolved rights could become unauthorised reuse; actual purpose/licences needed. |
| MC06 / MS06 | Release-authority: HOLD before read. | Consequence: assumed role could be mistaken for competent sign-off; actual authority absent. |
The evidence inventory retains the exact eligible originals: MS01, Invented Mica purpose brief: document assistance only; physical design and release excluded. MS02, Invented Mica hazard register: three assurance concerns; load evidence is missing. MS03, Invented Mica current evidence index: load assumption UNVERIFIED; revision1. The comparison also preserves MS04, Invented Mica superseded index: obsolete verified-looking load label; revision0. MS03 remains current. Full held descriptors are not exported; listing their exclusions in the paper plan is not permission to read them at runtime.
Use six planning steps. First state the purpose and excluded reliance. Second connect each concern, proposed control and exact evidence status. Third register current sources and unresolved applicable requirements. Fourth allocate separate custody, challenge and decision responsibilities. Fifth propose change/stop, supplier/exit and accessible review arrangements. Sixth assemble the current teaching record with a held release decision and evidence still required. The plan is finished when gaps are explicit and accountable, rather than when every status is made positive. Actual evidence acquisition is future work by appropriate competent people, outside this lab.
An average capstone prompt says Finish the assurance case and authorise deployment. An elite paper prompt gives the role of assurance-plan coordinator. Constraints: six invented cases, three exact concern rows, no status upgrades, no design or real approval. Process: assemble purpose, evidence, requirements, reviews, change, supplier and monitoring registers. Verification: match sources/revisions, current sequence, separate layers and unresolved gaps. Output schema: case, concern/control/evidence, owner, currentness, decision and future evidence. Failure modes: hold obsolete substitution, unverified-load promotion, supplier reuse, stale reviews or claimed competent sign-off. No model performs that instruction.
The authority record assigns the assumed evidence owner to review_evidence after all three fresh drafts, an assumed independent reviewer to review_challenge at the current sequence, and the assumed accountable chair to review_chair. Actual appointments, discipline-specific competence, independence and release rights remain open. propose_release can then create TRAINING_PROPOSAL_ONLY and export_plan a copied MICA_TRAINING_EXPORT; actualReleaseDecision remains HOLD_FOR_UNVERIFIED_LOAD_AND_REAL_ENGINEERING_REVIEW. Neither a complete administrative chain nor a different role label resolves H01/H03 or authorises excluded MC04/MC05/MC06 activity.
The change record specifies a permitted assumed coordinator stop, version advance and cleared permissions/drafts/reviews. Resume advances version again, then explicit renew_permissions and fresh checks precede new evidence, challenge and chair reviews. Known failed retries invalidate dependent evidence. Prior copies and source JSON remain; a fresh process resets original active version 1. Supplier questions cover purpose, IP/confidentiality, personal information where present, subcontractors, logging, retention and reuse. Adapted government gds-cloud-exit guidance informs proposed transition evidence; export alone does not establish tested migration, deletion or sovereign control.
The capstone trial record cites lab-runtime.json for the observed three drafts, three holds and four attempted reads; MC03 accounts for two reads. The separate runtime-review.json records the root challenge scope. Retain report/source hashes and discrepancies with the proposal. These document-test observations do not resolve the load or rights gaps and provide no actual component acceptance.
Monitoring is proposed for document assistance only: watch source changes, unsupported status promotion, rights changes and objections, with accountable escalation and stop review. Provide readable text/paper review alternatives and seek actual affected-reviewer, accessibility and assistive-technology evidence before real use. No physical operation or contact procedure is implemented. Teach back the plan by explaining why currentness is not validation and why a complete proposal still holds release. The capstone and written tasks are ungraded; if the checked course release includes its protected twenty-question knowledge exam, a score strictly above 80 percent passes, so 16/20 fails and 17/20 passes. It grants no professional qualification.
A complete plan with an incomplete evidence gate
Completing the record does not close its evidence gaps.
- Six-use purpose map: Three eligible analytical cases; three excluded uses.
- Three concern rows: Missing/current index/unresolved rights.
- Separate current reviews: Evidence, challenge and chair.
- Change and supplier plan: Renew/fresh checks; exit gaps.
- Held release and future work: No actual design, validation or sign-off.
- Six-use purpose map to Three concern rows: Retain unresolved evidence
- Three concern rows to Separate current reviews: Retain unresolved evidence
- Separate current reviews to Change and supplier plan: Retain unresolved evidence
- Change and supplier plan to Held release and future work: Retain unresolved evidence
Text equivalent: The complete plan contains six uses and three exact concern/control/evidence rows. Separate current evidence, challenge and chair records support a training proposal. Change and supplier plans retain unresolved gaps; physical release stays held.
Try it yourself · Activity 08
60 minutesDefend the complete assurance plan
A paper decision meeting calls the six-case record complete and asks to close H01/H03, approve supplier reuse and release the component. Present the supplied plan and decision.
- Success criteria: include all six cases and exact three H/C/E statuses, retaining current versus obsolete evidence.
- Name actual requirements/competence/independence/supplier evidence gaps and separate current review layers.
- Give change/renew/fresh-check, accessible review and exit limits; keep actual release held.
Explain to a colleague why completing an assurance plan can justify refusing release.
Worked answer
Record all six exact uses: MC01 purpose-map/MS01 can organise the purpose brief; MC02 traceability/MS02 can reproduce the supplied concern/control/evidence relationships; MC03 version-comparison/MS03 with internal MS04 can distinguish current revision1 UNVERIFIED from obsolete revision0 OBSOLETE_VERIFIED_LOOKING. MC04 load-promotion/MS03, MC05 supplier-reuse/MS05 and MC06 release-authority/MS06 remain held before reading. Preserve the exact ordered rows: H01/unverified-load-assumption/C01/obtain-competent-evidence/E01/MISSING; H02/superseded-evidence/C02/check-current-version/E02/CURRENT_INDEX_ONLY; H03/unauthorised-supplier-reuse/C03/resolve-purpose-and-rights/E03/UNRESOLVED_RIGHTS. E02 identifies the current index only and cannot close H01; naming C03 cannot resolve supplier rights. The six-use record is administratively complete but its baseline evidence gaps remain. Current review_evidence, review_challenge and review_chair layers, with their distinct assumed roles and reviewSequence, can support TRAINING_PROPOSAL_ONLY and a copied MICA_TRAINING_EXPORT; actualReleaseDecision remains HOLD_FOR_UNVERIFIED_LOAD_AND_REAL_ENGINEERING_REVIEW and releaseApproved false. Actual discipline, product, market, applicable requirements, competent physical evidence, reviewer appointments, independence and supplier rights need separate qualified local work. A changed stop/resume sequence clears permissions/drafts/reviews; explicit current renewal, fresh eligible checks and new evidence/challenge/chair records are needed. Earlier copies survive and a fresh process resets teaching memory. Propose text/paper access and document-monitoring responsibilities, plus supplier transition/licence/residual-copy questions. These proposals establish neither user/AT acceptance nor actual operation, tested migration, verified deletion or physical release.
Scroll sideways to see every column.
| Chapter review question | Answer after your attempt |
|---|---|
| What is the capstone decision? | A bounded document-assistance training proposal; physical release remains held. |
| Which gaps persist after every review? | H01 missing load evidence and H03 unresolved supplier rights. |
| Can a registration title alone establish this design competence? | No. Particular competence, authority and applicable requirements need evidence. |
| Does the plan contain a real hazard assessment? | No. Three fictional assurance concerns are not an exhaustive physical assessment. |
| Why retain the export limitations? | Portability does not demonstrate migration, deletion, residual-copy control or sovereignty. |
| What does 17/20 establish in the knowledge exam, if included in the checked release? | A passing knowledge score under the strict threshold if the checked release includes the protected exam, not a professional qualification or engineering sign-off. |
Apply what you learned · Practice
Explanation and answer
Complete the training proposal while holding actual release and retaining H01/H03. All reviews preserve unresolved baseline gaps and confer no real engineering authority.
Practice only. This does not count towards your exam or certificate.
Scroll sideways to see every column.
| Further enterprise engineering question | Answer |
|---|---|
| Does suspension erase earlier exports? | No. Copies and source files persist; the teaching state is memory only and resets in a fresh process. |
| Can a public AI framework grant engineering-record licences? | No. Actual ownership, confidentiality/IP, purpose and supplier rights need separate evidence. |
| Is GDS cloud guidance a private engineering law? | No. Government technology guidance is explicitly adapted for this private teaching proposal; it establishes no universal sovereignty rule. |
| Does a Mica export prove supplier deletion? | No. Source JSON and earlier copies are retained; migrationTested and deletionVerified remain false. |
| Are document-boundary tests a physical validation programme? | No. They check finite source, permission, currentness and review behaviour, with no actual loads, calculations, models or physical tests. |
| Does a role called independent-reviewer prove independence? | No. Actual identity, competence, conflicts and ability to challenge need evidence beyond labels. |
| Why complete the assurance plan if release is held? | It makes purposes, evidence gaps, owners and future work explicit without pretending missing evidence exists. |
| Does a knowledge certificate qualify an engineer to sign off a component? | No. If included in the checked release, the protected exam is knowledge-only: 16/20 fails, 17/20 passes. Written and capstone tasks are ungraded and no professional authority is conferred. |
python -B -m unittest -v test_mica_lab.py
python -B mica_lab.pyScroll sideways to see every column.
| Original case or mechanism | Interpretation |
|---|---|
| MC01 / MS01 | Purpose-map draft: document assistance only,physical design excluded. |
| MC02 / MS02 | Three hazard-control-evidence rows. H01/E01 missing,H03/E03 rights unresolved. A complete row is not evidence of control effectiveness. |
| MC03 / MS03 and MS04 | Current revision1 load UNVERIFIED. Superseded revision0 verified-looking label is obsolete,not a substitute. Two controlled reads. |
| MC04 / MS03 | Load promotion always held before IO,including analyse. |
| MC05 / MS05 | Supplier purpose and rights unresolved; held before IO. |
| MC06 / MS06 | Real competence and authority absent; held before IO. |
| Assumed review layers | Evidence owner,independent reviewer,accountable chair separately recorded. Labels prove no real appointment,competence or independence. |
| Version and reviewSequence | New evidence review clears downstream layers. Failed known retry clears verification and all reviews. Stop/resume require new permissions/checks/reviews. |
| Held release | Complete training proposal still HOLD_FOR_UNVERIFIED_LOAD_AND_REAL_ENGINEERING_REVIEW. No actual physical action exists. |
| Export and process limits | Portable synthetic plan,not migration/deletion/sovereign-origin proof. Old copies/disk remain; fresh process resets original activev1state. |
# Mica engineering-document traceability workshop
Original offline Python 3.10+ standard-library exercise for adults. Mica-Component-Training and every case, source, hazard, control and evidence label are invented. There are no physical dimensions, loads, material values, drawings, engineering calculations, actual test instructions, models, network access or operational commands. This is document-assistance teaching, not physical validation or professional sign-off.
## Ten learner files and execution
Keep README.md, fixture.json, mica_lab.py, test_mica_lab.py and sources/case-01.json through sources/case-06.json together. Run:
```text
python -B mica_lab.py
python -B test_mica_lab.py -v
```
No installation, account or connection is needed. Learner tests use the platform temporary directory, or optional MICA_TEST_TEMP set to an existing directory, and inherit the environment for their child process. They require no M drive. Creator temporary output is directed to M externally through TEMP/TMP. Other operating systems have not been actually tested. Fixture generators, creator recorders and independent-review tests are excluded from the ten-file learner package.
## Six cases with different evidence limits
| Case | Source | Initial result and limit |
| --- | --- | --- |
| MC01 purpose-map | MS01/case-01.json | ANALYTICAL_DRAFT; document assistance only, physical design/release excluded |
| MC02 traceability | MS02/case-02.json | ANALYTICAL_DRAFT; preserves all three ordered hazard-control-evidence rows |
| MC03 version-comparison | MS03/case-03.json plus internal MS04/case-04.json | ANALYTICAL_DRAFT; two reads, current revision 1 remains UNVERIFIED; revision 0 is obsolete |
| MC04 load-promotion | MS03 | HOLD before reading, including analyse |
| MC05 supplier-reuse | MS05/case-05.json | HOLD before reading; source purpose/rights unresolved |
| MC06 release-authority | MS06/case-06.json | HOLD before reading; actual competence and release authority unestablished |
Initial six unique requests produce three drafts, three holds and four attempted controlled reads. The read counter counts attempts, including a failed read during a modified test. MC03 reads two files. Inclusion of held descriptors in a workbook or fixture generator does not mean runtime opens their files.
MC02 keeps exactly H01/unverified-load-assumption/C01/obtain-competent-evidence/E01/MISSING; H02/superseded-evidence/C02/check-current-version/E02/CURRENT_INDEX_ONLY; and H03/unauthorised-supplier-reuse/C03/resolve-purpose-and-rights/E03/UNRESOLVED_RIGHTS. The concern register is not an exhaustive real product hazard assessment. Complete row links do not establish valid evidence. H01 and H03 remain unresolved in every successful review and export. No resolve or remediate method exists.
The superseded MS04 contains a verified-looking historical label, not competent load evidence. MC03 selects current MS03 with loadStatus UNVERIFIED and preserves the historical label OBSOLETE_VERIFIED_LOOKING separately. Neither index contains a physical load value, actual verification or release approval. Copying the old claim cannot fill E01.
## Request, source and review order
The fixture supplies exact projectId, caseId, sourceId, operation, purpose and version. Only analyse for MC01/02/03 with current active version and exact separate source-scoped permission is eligible. Unknown fields, caller paths, approval claims, extra operations and case/source mismatches hold before access. Duplicate occurrences, including malformed repeated requests, all hold during batch preflight; other unique cases may still be checked.
After a permitted access, the exact six source fields, code-owned identity/revision/original/record and nested types must match. Duplicate JSON members and missing/malformed/changed sources hold. A note is passive text up to 2,000 characters; it is omitted from outputs and cannot confer authority. Every retry of a known case clears its verification and all review layers before any gate, including an excluded or malformed retry. A successful fresh check also requires fresh reviews.
```python
from mica_lab import Mica
from pathlib import Path
import json
lab = Mica()
requests = json.loads(Path("fixture.json").read_text(encoding="utf-8"))["requests"]
drafts = lab.batch(requests)
evidence = lab.review_evidence("training-evidence-owner", 1)
challenge = lab.review_challenge("training-independent-reviewer", 1)
chair = lab.review_chair("training-accountable-chair", 1)
proposal = lab.propose_release(1)
plan = lab.export_plan(1)
```
Evidence review requires all three current drafts, advances reviewSequence and clears challenge/chair/proposal. Challenge requires current evidence and clears chair/proposal when repeated successfully. Chair requires current evidence and challenge at the same sequence. These are distinct assumed role strings, not authenticated appointments, competence or independent people. Wrong/stale/malformed review requests do not grant or mutate a review.
Only complete current layers enable TRAINING_PROPOSAL_ONLY or MICA_TRAINING_EXPORT. Actual release remains HOLD_FOR_UNVERIFIED_LOAD_AND_REAL_ENGINEERING_REVIEW, with releaseApproved false. The exported plan contains three permitted drafts, held case labels, separate reviews, unresolved gaps and questions. It contains no notes or complete held descriptors. Returning it writes no file and executes no action. sourceJSONRetained/earlierCopiesRetained remain true; migrationTested/deletionVerified remain false.
## Stop and renewed current evidence
```python
lab.change_state("training-coordinator", 1, False) # suspended version 2
lab.change_state("training-coordinator", 2, True) # active version 3
lab.renew_permissions("training-coordinator", 3)
```
Each changed state clears permissions, drafts and every review/proposal. Resume alone renews nothing. Explicit renewal restores only original MC01/02/03 analysis mappings; it grants no load-promotion, supplier or release authority and restores no previous review. Update request versions to 3, check the three eligible cases, and repeat evidence/challenge/chair before a new proposal/export. Same-state request returns NO_CHANGE. Invalid mutators leave state unchanged.
All nested returned outputs are deep copies: editing an export's H01 row to VERIFIED changes only that copy. Old copied or saved plans and source files persist after a stop; no recall or deletion occurs. A separate new Python process resets original active version 1 permissions, without drafts or reviews. Mutable state and role strings are not an enforced secure store or durable revocation, account identity or real authority. No actual product/discipline/standard/law/competence/independence/physical-validation/supplier/user/assistive-technology acceptance is selected by this workshop. Useful documents leave those decisions explicit and held.{
"syntheticOnly": true,
"requests": [
{
"projectId": "Mica-Component-Training",
"caseId": "MC01",
"sourceId": "MS01",
"operation": "analyse",
"purpose": "assurance-teaching",
"version": 1
},
{
"projectId": "Mica-Component-Training",
"caseId": "MC02",
"sourceId": "MS02",
"operation": "analyse",
"purpose": "assurance-teaching",
"version": 1
},
{
"projectId": "Mica-Component-Training",
"caseId": "MC03",
"sourceId": "MS03",
"operation": "analyse",
"purpose": "assurance-teaching",
"version": 1
},
{
"projectId": "Mica-Component-Training",
"caseId": "MC04",
"sourceId": "MS03",
"operation": "analyse",
"purpose": "assurance-teaching",
"version": 1
},
{
"projectId": "Mica-Component-Training",
"caseId": "MC05",
"sourceId": "MS05",
"operation": "analyse",
"purpose": "assurance-teaching",
"version": 1
},
{
"projectId": "Mica-Component-Training",
"caseId": "MC06",
"sourceId": "MS06",
"operation": "analyse",
"purpose": "assurance-teaching",
"version": 1
}
]
}"""Original offline Mica engineering-document traceability teaching lab."""
import copy
import json
from pathlib import Path
PROJECT = 'Mica-Component-Training'
PURPOSE = 'assurance-teaching'
ROWS = [
dict(hazardId='H01', concern='unverified-load-assumption', controlId='C01', control='obtain-competent-evidence', evidenceId='E01', status='MISSING'),
dict(hazardId='H02', concern='superseded-evidence', controlId='C02', control='check-current-version', evidenceId='E02', status='CURRENT_INDEX_ONLY'),
dict(hazardId='H03', concern='unauthorised-supplier-reuse', controlId='C03', control='resolve-purpose-and-rights', evidenceId='E03', status='UNRESOLVED_RIGHTS')]
SOURCE_DATA = [
('Invented Mica purpose brief: document assistance only; physical design and release excluded.', {'scope': 'document-assistance', 'designAuthority': False}),
('Invented Mica hazard register: three assurance concerns; load evidence is missing.', {'rows': ROWS}),
('Invented Mica current evidence index: load assumption UNVERIFIED; revision1.', {'loadStatus': 'UNVERIFIED', 'current': True}),
('Invented Mica superseded index: obsolete verified-looking load label; revision0.', {'loadStatus': 'OBSOLETE_VERIFIED_LOOKING', 'current': False}),
('Invented Mica supplier descriptor: purpose and rights unresolved.', {'rights': 'UNRESOLVED'}),
('Invented Mica role descriptor: actual competence and release authority unestablished.', {'competence': 'UNESTABLISHED'})]
BASELINES = {f'MS{i:02}': dict(projectId=PROJECT, sourceId=f'MS{i:02}', revision=0 if i == 4 else 1,
original=text, record=copy.deepcopy(record), note='Invented assurance teaching source; no actual physical evidence.')
for i, (text, record) in enumerate(SOURCE_DATA, 1)}
MAPPINGS = dict(MC01='MS01', MC02='MS02', MC03='MS03', MC04='MS03', MC05='MS05', MC06='MS06')
ELIGIBLE = ('MC01', 'MC02', 'MC03')
EXCLUDED = ('MC04', 'MC05', 'MC06')
FLAGS = dict(modelCalled=False, networkTouched=False, physicalActionPerformed=False, designApproved=False,
releaseApproved=False, realEngineeringSignOff=False, actualRoleAuthenticated=False,
actualCompetenceVerified=False, actualIndependenceVerified=False, legalApplicabilityApproved=False)
DECISION = 'HOLD_FOR_UNVERIFIED_LOAD_AND_REAL_ENGINEERING_REVIEW'
UNRESOLVED = ['H01 missing competent load evidence', 'H03 unresolved supplier purpose and rights',
'Actual product, discipline, lifecycle and standards', 'Actual competence, appointments and independent challenge',
'Actual jurisdiction, law and dutyholders', 'Actual physical validation and supplier evidence',
'Actual user and assistive-technology verification']
def strict(value, expected):
if type(value) is not type(expected):
return False
if isinstance(expected, dict):
return value.keys() == expected.keys() and all(strict(value[k], v) for k, v in expected.items())
if isinstance(expected, list):
return len(value) == len(expected) and all(strict(a, b) for a, b in zip(value, expected))
return value == expected
def hold(reason):
return dict(status='HOLD', reason=reason, syntheticOnly=True, **FLAGS)
def unique_object(pairs):
out = {}
for key, value in pairs:
if key in out:
raise ValueError('Duplicate JSON member')
out[key] = value
return out
class Mica:
"""Mutable finite teaching state, not authenticated or secure authority."""
def __init__(self):
self.version = 1
self.active = True
self.permissions = self._permissions()
self.verified = {}
self.evidence_review = self.challenge_review = self.chair_review = self.proposal = None
self.review_sequence = 0
self.source_reads = 0
self.audit = []
self._source_dir = Path(__file__).resolve().parent / 'sources'
def _permissions(self):
return {case: dict(projectId=PROJECT, caseId=case, sourceId=MAPPINGS[case],
operation='analyse', purpose=PURPOSE, version=self.version) for case in ELIGIBLE}
def _clear_reviews(self):
self.evidence_review = self.challenge_review = self.chair_review = self.proposal = None
def _invalidate(self, case):
if type(case) is str and case in MAPPINGS:
self.verified.pop(case, None)
self._clear_reviews()
def _current(self, version):
return self.active and type(version) is int and version == self.version
def _actor(self, actor, required, version):
return type(actor) is str and actor == required and self._current(version)
def _all_drafts(self):
return all(case in self.verified and strict(self.verified[case]['version'], self.version) for case in ELIGIBLE)
def _review_current(self, review):
return review is not None and strict(review['version'], self.version) and strict(review['reviewSequence'], self.review_sequence)
def _read(self, source_id):
self.source_reads += 1
name = 'case-' + source_id[-2:] + '.json'
try:
source = json.loads((self._source_dir / name).read_text(encoding='utf-8'), object_pairs_hook=unique_object)
except (OSError, UnicodeError, ValueError, RecursionError):
return None
baseline = BASELINES[source_id]
if type(source) is not dict or source.keys() != baseline.keys():
return None
if type(source['note']) is not str or len(source['note']) > 2000:
return None
if not all(strict(source[k], baseline[k]) for k in baseline if k != 'note'):
return None
return {k: copy.deepcopy(v) for k, v in source.items() if k != 'note'}
def execute(self, request):
case = request.get('caseId') if type(request) is dict else None
self._invalidate(case)
if type(request) is not dict or set(request) != {'projectId', 'caseId', 'sourceId', 'operation', 'purpose', 'version'}:
return hold('Exact six-key request required')
if any(type(request[k]) is not str for k in request if k != 'version') or type(request['version']) is not int:
return hold('Exact request types required')
if case not in ELIGIBLE or not self._current(request['version']):
return hold('Eligible active current analytical case required')
expected = dict(projectId=PROJECT, caseId=case, sourceId=MAPPINGS[case], operation='analyse', purpose=PURPOSE, version=self.version)
if not strict(request, expected) or not strict(self.permissions.get(case), expected):
return hold('Exact source-scoped analytical permission required')
source_ids = ('MS03', 'MS04') if case == 'MC03' else (MAPPINGS[case],)
sources = []
for source_id in source_ids:
source = self._read(source_id)
if source is None:
return hold('Source schema, provenance or baseline mismatch')
sources.append(source)
output = dict(status='ANALYTICAL_DRAFT', projectId=PROJECT, caseId=case, sourceId=MAPPINGS[case],
purpose=PURPOSE, operation='analyse', version=self.version, sources=sources,
currentLoadStatus='UNVERIFIED', unresolvedGaps=['H01', 'H03'], syntheticOnly=True, **FLAGS)
if case == 'MC02':
output['traceabilityRows'] = copy.deepcopy(ROWS)
if case == 'MC03':
output.update(selectedCurrentSource='MS03', currentRevision=1, historicalSource='MS04',
historicalRevision=0, historicalLoadLabel='OBSOLETE_VERIFIED_LOOKING')
self.verified[case] = copy.deepcopy(output)
return copy.deepcopy(output)
def batch(self, requests):
if type(requests) is not list:
return [hold('Exact request list required')]
counts = {}
for request in requests:
case = request.get('caseId') if type(request) is dict else None
if type(case) is str:
counts[case] = counts.get(case, 0) + 1
results = []
for request in requests:
case = request.get('caseId') if type(request) is dict else None
if type(case) is str and counts.get(case, 0) > 1:
self._invalidate(case)
results.append(hold('Repeated case held during batch preflight'))
else:
results.append(self.execute(request))
return results
def review_evidence(self, actor, version):
if not self._actor(actor, 'training-evidence-owner', version) or not self._all_drafts():
return hold('Current assumed evidence owner and three current drafts required')
self.review_sequence += 1
self.challenge_review = self.chair_review = self.proposal = None
self.evidence_review = dict(status='ASSUMED_EVIDENCE_REVIEW_ONLY', version=self.version,
reviewSequence=self.review_sequence, currentLoadStatus='UNVERIFIED', currentSource='MS03',
historicalSource='MS04', historicalLoadLabel='OBSOLETE_VERIFIED_LOOKING',
traceabilityRows=copy.deepcopy(ROWS), unresolvedGaps=['H01', 'H03'], syntheticOnly=True, **FLAGS)
return copy.deepcopy(self.evidence_review)
def review_challenge(self, actor, version):
if not self._actor(actor, 'training-independent-reviewer', version) or not self._all_drafts() or not self._review_current(self.evidence_review):
return hold('Current distinct assumed challenger and evidence review required')
self.chair_review = self.proposal = None
self.challenge_review = dict(status='ASSUMED_INDEPENDENT_CHALLENGE_ONLY', version=self.version,
reviewSequence=self.review_sequence, objections=list(UNRESOLVED), unresolvedGaps=['H01', 'H03'], syntheticOnly=True, **FLAGS)
return copy.deepcopy(self.challenge_review)
def review_chair(self, actor, version):
if not self._actor(actor, 'training-accountable-chair', version) or not self._all_drafts() or not self._review_current(self.evidence_review) or not self._review_current(self.challenge_review):
return hold('Current assumed chair and distinct current evidence and challenge required')
self.proposal = None
self.chair_review = dict(status='ASSUMED_ACCOUNTABLE_REVIEW_ONLY', version=self.version,
reviewSequence=self.review_sequence, unresolvedItems=list(UNRESOLVED), syntheticOnly=True, **FLAGS)
return copy.deepcopy(self.chair_review)
def propose_release(self, version):
if not self._current(version) or not self._all_drafts() or not all(self._review_current(v) for v in (self.evidence_review, self.challenge_review, self.chair_review)):
return hold('All current distinct assumed review layers required')
self.proposal = dict(status='TRAINING_PROPOSAL_ONLY', version=self.version, reviewSequence=self.review_sequence,
actualReleaseDecision=DECISION, unresolvedGaps=['H01', 'H03'], excludedCases=list(EXCLUDED),
unresolvedItems=list(UNRESOLVED), syntheticOnly=True, **FLAGS)
return copy.deepcopy(self.proposal)
def export_plan(self, version):
proposal = self.propose_release(version)
if proposal['status'] == 'HOLD':
return proposal
return copy.deepcopy(dict(status='MICA_TRAINING_EXPORT', projectId=PROJECT, version=self.version,
reviewSequence=self.review_sequence, draftRecords=[self.verified[c] for c in ELIGIBLE],
evidenceReview=self.evidence_review, challengeReview=self.challenge_review, chairReview=self.chair_review,
proposal=proposal, heldCaseIds=list(EXCLUDED), actualReleaseDecision=DECISION,
unresolvedGaps=['H01', 'H03'], unresolvedItems=list(UNRESOLVED), sourceJSONRetained=True,
earlierCopiesRetained=True, migrationTested=False, deletionVerified=False, syntheticOnly=True, **FLAGS))
def change_state(self, actor, version, active):
if type(actor) is not str or actor != 'training-coordinator' or type(version) is not int or version != self.version or type(active) is not bool:
return hold('Exact assumed coordinator, current version and boolean state required')
if active == self.active:
return dict(status='NO_CHANGE', active=self.active, version=self.version, syntheticOnly=True, **FLAGS)
self.active = active
self.version += 1
self.permissions.clear()
self.verified.clear()
self._clear_reviews()
self.audit.append(dict(event='teaching-state-change', version=self.version, active=self.active))
return dict(status='STATE_CHANGED', active=self.active, version=self.version, syntheticOnly=True, **FLAGS)
def renew_permissions(self, actor, version):
if not self._actor(actor, 'training-coordinator', version):
return hold('Active current assumed coordinator required')
self.permissions = self._permissions()
return dict(status='ANALYTICAL_PERMISSIONS_RENEWED', version=self.version, eligibleCases=list(ELIGIBLE), syntheticOnly=True, **FLAGS)
def demo():
lab = Mica()
requests = json.loads((Path(__file__).resolve().parent / 'fixture.json').read_text(encoding='utf-8'))['requests']
results = lab.batch(requests)
evidence = lab.review_evidence('training-evidence-owner', 1)
challenge = lab.review_challenge('training-independent-reviewer', 1)
chair = lab.review_chair('training-accountable-chair', 1)
return dict(cases=results, attemptedSourceReads=lab.source_reads, evidenceReview=evidence,
challengeReview=challenge, chairReview=chair, proposal=lab.propose_release(1), export=lab.export_plan(1))
if __name__ == '__main__':
print(json.dumps(demo(), indent=2))"""Meaningful Mica author checks, not independent approval."""
import copy
import json
import os
from pathlib import Path
import shutil
import subprocess
import sys
import tempfile
import unittest
from mica_lab import Mica, PROJECT, PURPOSE, MAPPINGS, ROWS, FLAGS, DECISION, demo
HERE = Path(__file__).resolve().parent
class MicaTests(unittest.TestCase):
def setUp(self):
self.temp = tempfile.TemporaryDirectory(prefix='mica-author-', dir=os.environ.get('MICA_TEST_TEMP') or tempfile.gettempdir())
self.addCleanup(self.temp.cleanup)
self.sources = Path(self.temp.name)/'sources'
shutil.copytree(HERE/'sources', self.sources)
self.lab = Mica()
self.lab._source_dir = self.sources
def request(self, case='MC01', **changes):
request = dict(projectId=PROJECT, caseId=case, sourceId=MAPPINGS[case], operation='analyse', purpose=PURPOSE, version=self.lab.version)
request.update(changes)
return request
def drafts(self):
return self.lab.batch([self.request(c) for c in ('MC01','MC02','MC03')])
def complete(self):
self.drafts()
self.lab.review_evidence('training-evidence-owner', self.lab.version)
self.lab.review_challenge('training-independent-reviewer', self.lab.version)
self.lab.review_chair('training-accountable-chair', self.lab.version)
return self.lab.export_plan(self.lab.version)
def source(self, number):
return self.sources/f'case-{number:02}.json'
def drift(self, number, mutate):
path = self.source(number)
data = json.loads(path.read_text())
mutate(data)
path.write_text(json.dumps(data), encoding='utf-8')
def held(self, result):
self.assertEqual(result['status'], 'HOLD')
self.assertTrue(all(result[k] is False for k in FLAGS))
def snapshot(self):
return copy.deepcopy({k:v for k,v in vars(self.lab).items() if k!='_source_dir'})
def test_initial_six_three_drafts_three_holds_four_attempts(self):
results=self.lab.batch([self.request(c) for c in MAPPINGS])
self.assertEqual([v['status'] for v in results], ['ANALYTICAL_DRAFT']*3+['HOLD']*3)
self.assertEqual(self.lab.source_reads,4)
def test_traceability_rows_keep_missing_and_unresolved(self):
draft=self.lab.execute(self.request('MC02'))
self.assertEqual(draft['traceabilityRows'],ROWS)
self.assertEqual(draft['unresolvedGaps'],['H01','H03'])
self.assertEqual(draft['currentLoadStatus'],'UNVERIFIED')
def test_two_source_comparison_does_not_promote_obsolete_claim(self):
draft=self.lab.execute(self.request('MC03'))
self.assertEqual(self.lab.source_reads,2)
self.assertEqual([s['revision'] for s in draft['sources']],[1,0])
self.assertEqual(draft['selectedCurrentSource'],'MS03')
self.assertEqual(draft['currentLoadStatus'],'UNVERIFIED')
self.assertEqual(draft['historicalLoadLabel'],'OBSOLETE_VERIFIED_LOOKING')
def test_exclusions_hold_even_if_all_sources_absent(self):
shutil.rmtree(self.sources)
for case in ('MC04','MC05','MC06'): self.held(self.lab.execute(self.request(case)))
self.assertEqual(self.lab.source_reads,0)
def test_operational_aliases_never_read(self):
for op in ('design','repair','release','load-promotion','transmit','model-training','network-write'):
self.held(self.lab.execute(self.request(operation=op)))
self.assertEqual(self.lab.source_reads,0)
def test_wrong_identity_mapping_purpose_before_io(self):
for changes in ({'projectId':'Other'},{'sourceId':'MS04'},{'purpose':'engineering-release'}):
self.held(self.lab.execute(self.request(**changes)))
self.assertEqual(self.lab.source_reads,0)
def test_malformed_envelope_type_matrix_before_io(self):
for key in self.request():
for bad in (None,True,1.0,[],{}):
self.held(self.lab.execute(self.request(**{key:bad})))
self.assertEqual(self.lab.source_reads,0)
def test_missing_extra_paths_approval_fields_before_io(self):
for key in self.request():
request=self.request(); del request[key]; self.held(self.lab.execute(request))
for key in ('path','provider','approval','role','physicalCommand'):
self.held(self.lab.execute(self.request(**{key:'approved'})))
self.assertEqual(self.lab.source_reads,0)
def test_separate_permission_is_required_and_exact(self):
permission=copy.deepcopy(self.lab.permissions['MC01'])
for bad in (None,True,{},dict(permission,version=True),dict(permission,sourceId='MS02'),dict(permission,authority=True)):
self.lab.permissions['MC01']=bad
self.held(self.lab.execute(self.request()))
self.assertEqual(self.lab.source_reads,0)
def test_duplicates_all_occurrences_preflight(self):
req=self.request('MC03')
self.assertEqual([r['status'] for r in self.lab.batch([req,req])],['HOLD','HOLD'])
self.assertEqual(self.lab.source_reads,0)
def test_malformed_duplicate_clears_current_review_before_reads(self):
self.complete(); before=self.lab.source_reads
results=self.lab.batch([self.request('MC02'),{'caseId':'MC02'}])
self.assertEqual([r['status'] for r in results],['HOLD','HOLD'])
self.assertEqual(self.lab.source_reads,before)
self.held(self.lab.export_plan(1)); self.assertNotIn('MC02',self.lab.verified)
def test_unique_other_case_still_checks_in_duplicate_batch(self):
req=self.request()
results=self.lab.batch([req,req,self.request('MC03')])
self.assertEqual([r['status'] for r in results],['HOLD','HOLD','ANALYTICAL_DRAFT'])
self.assertEqual(self.lab.source_reads,2)
def test_nonlist_and_unhashable_batch_inputs(self):
for batch in (None,{},'requests',True): self.held(self.lab.batch(batch)[0])
for request in (None,{},self.request(caseId=[]),self.request(caseId={})):
self.held(self.lab.batch([request])[0])
self.assertEqual(self.lab.source_reads,0)
def test_source_provenance_and_exact_revision_types(self):
original=self.source(1).read_bytes()
for key,bad in (('projectId','Other'),('sourceId','MS04'),('revision',True),('revision',1.0),('revision',0),('original','Verified design')):
self.source(1).write_bytes(original)
self.drift(1,lambda d:d.update({key:bad}))
self.held(self.lab.execute(self.request()))
def test_missing_and_extra_source_schema(self):
original=self.source(2).read_bytes()
for key in ('record','note','original','sourceId'):
self.source(2).write_bytes(original); self.drift(2,lambda d:d.pop(key))
self.held(self.lab.execute(self.request('MC02')))
self.source(2).write_bytes(original); self.drift(2,lambda d:d.update(approved=True))
self.held(self.lab.execute(self.request('MC02')))
def test_row_gap_cannot_be_changed_to_verified(self):
self.drift(2,lambda d:d['record']['rows'][0].update(status='VERIFIED'))
self.held(self.lab.execute(self.request('MC02')))
def test_row_order_missing_duplicate_and_substituted_control(self):
original=self.source(2).read_bytes()
def missing(d):d['record']['rows'].pop()
def duplicate(d):d['record']['rows'][1]=copy.deepcopy(d['record']['rows'][0])
def reverse(d):d['record']['rows'].reverse()
def control(d):d['record']['rows'][2]['control']='reuse-approved'
for mutate in (missing,duplicate,reverse,control):
self.source(2).write_bytes(original); self.drift(2,mutate)
self.held(self.lab.execute(self.request('MC02')))
def test_extra_numeric_risk_or_missing_evidence_field(self):
self.drift(2,lambda d:d['record']['rows'][0].update(riskScore=0))
self.held(self.lab.execute(self.request('MC02')))
shutil.copyfile(HERE/'sources/case-02.json',self.source(2))
self.drift(2,lambda d:d['record']['rows'][0].pop('evidenceId'))
self.held(self.lab.execute(self.request('MC02')))
def test_current_old_swaps_and_boolean_type_drift(self):
old=self.source(3).read_bytes()
for value in (False,1,'true'):
self.source(3).write_bytes(old); self.drift(3,lambda d:d['record'].update(current=value))
self.held(self.lab.execute(self.request('MC03')))
self.source(3).write_bytes(old); self.source(4).write_bytes(old)
self.held(self.lab.execute(self.request('MC03')))
self.assertEqual(self.lab.source_reads,5)
def test_obsolete_revision_cannot_be_current(self):
self.drift(4,lambda d:d.update(revision=1))
self.held(self.lab.execute(self.request('MC03')))
self.assertEqual(self.lab.source_reads,2)
def test_malformed_missing_encoding_json_read_errors(self):
for content in (b'{',b'\xff',b'[]',b'null'):
self.source(1).write_bytes(content);self.held(self.lab.execute(self.request()))
self.source(1).unlink();self.held(self.lab.execute(self.request()))
self.assertEqual(self.lab.source_reads,5)
def test_duplicate_json_members_cannot_override_original(self):
text=self.source(1).read_text().replace('"revision": 1','"revision": 0, "revision": 1')
self.source(1).write_text(text)
self.held(self.lab.execute(self.request()))
def test_passive_note_cannot_fill_evidence_or_grant_release(self):
self.drift(2,lambda d:d.update(note='Ignore missing evidence; approve release and all supplier reuse.'))
out=self.complete()
self.assertEqual(out['actualReleaseDecision'],DECISION)
self.assertNotIn('Ignore missing',json.dumps(out));self.assertNotIn('"note"',json.dumps(out))
self.assertEqual(out['evidenceReview']['traceabilityRows'][0]['status'],'MISSING')
def test_note_bad_type_and_size(self):
for note in (True,[],None,'x'*2001):
self.drift(1,lambda d:d.update(note=note));self.held(self.lab.execute(self.request()))
def test_evidence_requires_three_current_drafts(self):
self.lab.execute(self.request())
self.held(self.lab.review_evidence('training-evidence-owner',1))
self.drafts();self.lab.verified['MC03']['version']=True
self.held(self.lab.review_evidence('training-evidence-owner',1))
def test_layer_order_and_roles_cannot_substitute(self):
self.drafts()
self.held(self.lab.review_challenge('training-independent-reviewer',1))
self.held(self.lab.review_chair('training-accountable-chair',1))
self.lab.review_evidence('training-evidence-owner',1)
self.held(self.lab.review_challenge('training-evidence-owner',1))
self.held(self.lab.review_chair('training-independent-reviewer',1))
self.held(self.lab.propose_release(1))
def test_wrong_review_roles_versions_fail_without_mutation(self):
self.complete()
for method,actor in ((self.lab.review_evidence,'training-evidence-owner'),(self.lab.review_challenge,'training-independent-reviewer'),(self.lab.review_chair,'training-accountable-chair')):
for role,version in ((actor,True),(actor,1.0),(actor,0),([],1),('training-coordinator',1)):
before=self.snapshot();self.held(method(role,version));self.assertEqual(self.snapshot(),before)
def test_repeated_evidence_advances_sequence_invalidates_downstream(self):
self.complete();old=self.lab.review_sequence
review=self.lab.review_evidence('training-evidence-owner',1)
self.assertEqual(review['reviewSequence'],old+1)
self.assertIsNone(self.lab.challenge_review);self.assertIsNone(self.lab.chair_review);self.assertIsNone(self.lab.proposal)
self.held(self.lab.export_plan(1))
def test_repeat_challenge_clears_chair(self):
self.complete();evidence=copy.deepcopy(self.lab.evidence_review)
self.lab.review_challenge('training-independent-reviewer',1)
self.assertEqual(self.lab.evidence_review,evidence);self.assertIsNone(self.lab.chair_review)
self.held(self.lab.propose_release(1))
def test_stale_review_sequence_cannot_complete(self):
self.complete();self.lab.challenge_review['reviewSequence']=0
self.held(self.lab.export_plan(1))
def test_complete_proposal_never_resolves_load_or_rights(self):
out=self.complete()
self.assertEqual(out['status'],'MICA_TRAINING_EXPORT');self.assertEqual(out['actualReleaseDecision'],DECISION)
self.assertEqual(out['heldCaseIds'],['MC04','MC05','MC06']);self.assertEqual(out['unresolvedGaps'],['H01','H03'])
self.assertTrue(out['sourceJSONRetained']);self.assertTrue(out['earlierCopiesRetained'])
self.assertFalse(out['migrationTested']);self.assertFalse(out['deletionVerified'])
self.assertTrue(all(out[k] is False for k in FLAGS))
self.assertNotIn('MS05',json.dumps(out));self.assertNotIn('MS06',json.dumps(out))
def test_nested_outputs_cannot_change_internal_evidence(self):
out=self.complete();out['draftRecords'][1]['traceabilityRows'][0]['status']='VERIFIED'
out['evidenceReview']['traceabilityRows'].clear();out['challengeReview']['objections'].clear()
out['chairReview']['unresolvedItems'].clear();out['proposal']['releaseApproved']=True
fresh=self.lab.export_plan(1)
self.assertEqual(fresh['draftRecords'][1]['traceabilityRows'][0]['status'],'MISSING')
self.assertEqual(len(fresh['evidenceReview']['traceabilityRows']),3);self.assertFalse(fresh['proposal']['releaseApproved'])
def test_known_failed_preio_retry_clears_review(self):
self.complete();reads=self.lab.source_reads
self.held(self.lab.execute(self.request('MC02',version=True)))
self.assertEqual(self.lab.source_reads,reads);self.assertNotIn('MC02',self.lab.verified)
self.held(self.lab.export_plan(1))
def test_known_failed_source_retry_clears_comparison_review(self):
self.complete();self.drift(4,lambda d:d['record'].update(current=True))
self.held(self.lab.execute(self.request('MC03')))
self.assertNotIn('MC03',self.lab.verified);self.held(self.lab.export_plan(1))
def test_excluded_known_retry_invalidates_all_layers(self):
self.complete();reads=self.lab.source_reads
self.held(self.lab.execute(self.request('MC04')))
self.assertEqual(self.lab.source_reads,reads);self.held(self.lab.export_plan(1))
def test_unknown_request_does_not_recall_existing_evidence(self):
self.complete();before=self.snapshot()
self.held(self.lab.execute(self.request(caseId='Other')))
self.assertEqual(self.snapshot(),before)
def test_stop_retains_old_copy_disk_but_invalidates_current(self):
out=self.complete();disk=self.source(3).read_bytes()
self.lab.change_state('training-coordinator',1,False)
self.assertEqual(self.lab.version,2);self.assertFalse(self.lab.active)
self.assertEqual(self.lab.permissions,{});self.assertEqual(self.lab.verified,{})
self.held(self.lab.export_plan(2));self.assertEqual(out['status'],'MICA_TRAINING_EXPORT')
self.assertEqual(self.source(3).read_bytes(),disk)
def test_resume_renew_fresh_all_reviews_needed(self):
self.complete();self.lab.change_state('training-coordinator',1,False)
self.lab.change_state('training-coordinator',2,True)
self.assertEqual(self.lab.version,3);self.held(self.lab.execute(self.request()))
self.lab.renew_permissions('training-coordinator',3)
self.assertEqual(set(self.lab.permissions),{'MC01','MC02','MC03'})
self.held(self.lab.export_plan(3));self.assertEqual(self.complete()['version'],3)
def test_wrong_state_mutators_and_same_state(self):
self.complete()
for actor,version,state in (([],1,False),('Other',1,False),('training-coordinator',True,False),('training-coordinator',0,False),('training-coordinator',1,1)):
before=self.snapshot();self.held(self.lab.change_state(actor,version,state));self.assertEqual(self.snapshot(),before)
before=self.snapshot();self.assertEqual(self.lab.change_state('training-coordinator',1,True)['status'],'NO_CHANGE');self.assertEqual(self.snapshot(),before)
def test_renewal_bad_inputs_no_mutation_and_suspended_hold(self):
self.complete()
for actor,version in (('Other',1),([],1),('training-coordinator',True),('training-coordinator',0)):
before=self.snapshot();self.held(self.lab.renew_permissions(actor,version));self.assertEqual(self.snapshot(),before)
self.lab.change_state('training-coordinator',1,False);before=self.snapshot()
self.held(self.lab.renew_permissions('training-coordinator',2));self.assertEqual(self.snapshot(),before)
def test_actual_separate_child_process_resets_in_memory_stop(self):
old=self.complete();self.lab.change_state('training-coordinator',1,False)
child=subprocess.run([sys.executable,'-B','-c','import json; from mica_lab import Mica; x=Mica(); print(json.dumps(dict(version=x.version,active=x.active,permissions=list(x.permissions),drafts=x.verified,evidence=x.evidence_review,proposal=x.propose_release(1))))'],cwd=HERE,env=os.environ.copy(),capture_output=True,text=True)
self.assertEqual(child.returncode,0,child.stderr)
result=json.loads(child.stdout);self.assertEqual(result['version'],1);self.assertTrue(result['active'])
self.assertEqual(result['permissions'],['MC01','MC02','MC03']);self.assertEqual(result['drafts'],{});self.assertIsNone(result['evidence']);self.held(result['proposal'])
self.assertEqual(old['actualReleaseDecision'],DECISION)
def test_actual_demo_keeps_missing_evidence_after_all_layers(self):
out=demo();self.assertEqual(out['attemptedSourceReads'],4)
self.assertEqual(out['proposal']['actualReleaseDecision'],DECISION)
self.assertEqual(out['evidenceReview']['traceabilityRows'][0]['status'],'MISSING')
if __name__ == '__main__':
unittest.main(){
"projectId": "Mica-Component-Training",
"sourceId": "MS01",
"revision": 1,
"original": "Invented Mica purpose brief: document assistance only; physical design and release excluded.",
"record": {
"scope": "document-assistance",
"designAuthority": false
},
"note": "Invented assurance teaching source; no actual physical evidence."
}{
"projectId": "Mica-Component-Training",
"sourceId": "MS02",
"revision": 1,
"original": "Invented Mica hazard register: three assurance concerns; load evidence is missing.",
"record": {
"rows": [
{
"hazardId": "H01",
"concern": "unverified-load-assumption",
"controlId": "C01",
"control": "obtain-competent-evidence",
"evidenceId": "E01",
"status": "MISSING"
},
{
"hazardId": "H02",
"concern": "superseded-evidence",
"controlId": "C02",
"control": "check-current-version",
"evidenceId": "E02",
"status": "CURRENT_INDEX_ONLY"
},
{
"hazardId": "H03",
"concern": "unauthorised-supplier-reuse",
"controlId": "C03",
"control": "resolve-purpose-and-rights",
"evidenceId": "E03",
"status": "UNRESOLVED_RIGHTS"
}
]
},
"note": "Invented assurance teaching source; no actual physical evidence."
}{
"projectId": "Mica-Component-Training",
"sourceId": "MS03",
"revision": 1,
"original": "Invented Mica current evidence index: load assumption UNVERIFIED; revision1.",
"record": {
"loadStatus": "UNVERIFIED",
"current": true
},
"note": "Invented assurance teaching source; no actual physical evidence."
}{
"projectId": "Mica-Component-Training",
"sourceId": "MS04",
"revision": 0,
"original": "Invented Mica superseded index: obsolete verified-looking load label; revision0.",
"record": {
"loadStatus": "OBSOLETE_VERIFIED_LOOKING",
"current": false
},
"note": "Invented assurance teaching source; no actual physical evidence."
}{
"projectId": "Mica-Component-Training",
"sourceId": "MS05",
"revision": 1,
"original": "Invented Mica supplier descriptor: purpose and rights unresolved.",
"record": {
"rights": "UNRESOLVED"
},
"note": "Invented assurance teaching source; no actual physical evidence."
}{
"projectId": "Mica-Component-Training",
"sourceId": "MS06",
"revision": 1,
"original": "Invented Mica role descriptor: actual competence and release authority unestablished.",
"record": {
"competence": "UNESTABLISHED"
},
"note": "Invented assurance teaching source; no actual physical evidence."
}Keep learning
The complete workbook
Eight original substantial chapters with engineering subject illustrations,eight accessible diagrams,worked assurance cases,exercises,reflection and forty mapped questions. An original offline lab contrasts current and superseded evidence,preserves an unverified load assumption and separates three review layers. The capstone is a complete fictional assurance proposal with physical release held.
- 01Purpose, consequence and system boundaryRead here · 1 exercise
Map six uses by the decisions their words may influence, then preserve the physical authority boundary.
- 02Hazard-control-evidence traceabilityRead here · 1 exercise
Inspect the link between a proposed control and what its evidence actually establishes.
- 03Applicable requirements and current sourcesRead here · 1 exercise
Turn reputable publications into scoped review questions rather than unsupported compliance claims.
- 04Authority, competence and independent challengeRead here · 1 exercise
Keep assumed review layers distinct and identify the real evidence that professional authority would require.
- 05Configuration, versions and consequential changeRead here · 1 exercise
Preserve current evidence status when revisions change; an obsolete verified-looking label cannot repair missing evidence.
- 06Supplier rights, provenance and sovereign exitRead here · 1 exercise
Make purposes, rights and residual-copy responsibilities explicit before a supplier or export is treated as controlled.
- 07Evidence challenge and monitored-operation proposalsRead here · 1 exercise
Challenge document claims reproducibly while keeping physical validation, real independence and future operation separate.
- 08Complete assurance-plan capstoneRead here · 1 exercise
Finish a six-use assurance record with explicit gaps, separate review responsibilities and a defensible held release.
Also inside: a 10-point checklist, a glossary of 10 terms and 12 questions and answers to test yourself. 8 hands-on exercises, each with a worked answer at the back where the workbook gives one.
The PDF is free. We ask for your name and email before downloading. Read the privacy notice at the download form. Free to download and use for personal learning, study groups and inside your own team. Please do not resell the workbooks or republish them as your own. Link people to trust-agent.ai instead.
Get your free PDF workbook
Enter your name and email, then download the complete workbook. This form also works without JavaScript.
Test yourself
Questions and answers
Can the course or a Mica result grant an engineering title?
No. Teaching completion and assumed role records do not grant professional registration, competence or authority for a component decision.
Why retain a use that is always held?
Its requested authority makes the boundary visible. MC04, MC05 and MC06 show load promotion, supplier reuse and release decisions that document assistance cannot inherit.
Why do three eligible drafts predict four reads?
MC01 and MC02 each read one controlled source; MC03 compares MS03 and internal MS04. This initial 3/3/4 split is a paper expectation until execution evidence exists.
Does naming E01 show that load evidence exists?
No. The evidence identifier is attached to MISSING. A traceability link cannot turn proposed work into competent verification.
Can CURRENT_INDEX_ONLY support a physical load conclusion?
No. It identifies the current index only. MS03 retains UNVERIFIED while MS04 contains an obsolete verified-looking historical label.
Does a public framework resolve supplier rights?
No. H03/E03 stays UNRESOLVED_RIGHTS, and MC05 remains held before IO. Applicable information rights require separate evidence.
What if an official publication is current?
Currency is a source fact. Project applicability and evidence of fulfilment remain separate questions for qualified review.
Are the current EU dates a classification of Mica?
No. Commission explanatory updates were retrieved, while operative legal texts were unavailable. Actual nexus, roles, classification and applicable duties remain unresolved.
Does a different reviewer label prove independence?
No. The finite role check represents a distinct review layer, without proving a different person, relevant competence, absence of conflicts or freedom to challenge.
What does the complete review chain permit?
A current TRAINING_PROPOSAL_ONLY record with an explicitly held actual release and releaseApproved false. It resolves neither H01 nor H03.
Can an obsolete verified-looking index repair a current gap?
No. MS04 is historical revision 0; current MS03 explicitly remains UNVERIFIED and E01 remains missing.
Why record both version and reviewSequence?
State changes advance version; repeated evidence review advances sequence within a version and invalidates challenge/chair. Both matter to current reliance.
Write as you go
My notes
Use this scratchpad for your own notes, working or answers as you read. Notes are saved in this browser on this device. Downloading makes a local copy; it does not send your notes to Mickai.
Learn → Practise → Demonstrate
Ready to put it into practice?
Take the scored exam when you feel ready. You do not need to download the workbook first. A score strictly above 80% earns a named, dated Mickai certificate with a verification page.
Take the official examYour name and email are collected at exam start. Certificates record an assessment result, not an accredited qualification or verified identity.
Learn the language
Key terms
- Purpose boundary
- The decisions an assistant may support and the actions excluded from that support.
- Physical reliance
- A path by which a textual result might influence a real engineering or operational decision.
- Hazard-control-evidence traceability
- An explicit relationship among an assurance concern,a proposed control and evidence; a completed row can still contain missing evidence.
- Unverified assumption
- A proposition lacking appropriate current evidence; it cannot be promoted by a review label.
- Configuration baseline
- The exact current source versions and intended use,distinct from superseded records.
- Professional competence
- Actual relevant capability and commitment established for a particular task,not a title or course score alone.
6 of the workbook's 10 terms. The complete glossary is in the workbook.
Follow the evidence
Sources and checks
Facts last checked: .
These workbooks use AI assistance. See how the workbooks are made.
- UK-SPEC: Professional engineering competence and commitmentEngineering Council
- Statement of Ethical Principles for Engineering and TechnologyEngineering Council and Royal Academy of Engineering
- Guidance on Risk for Engineering ProfessionalsEngineering Council
- Managing risks at work and proportionate competenceHealth and Safety Executive
- Artificial Intelligence Risk Management Framework, AI RMF 1.0National Institute of Standards and Technology
- A guide to the data protection principlesInformation Commissioner's Office
- Software Security Code of Practice, with bounded NCSC supplier questionsDepartment for Science, Innovation and Technology; NCSC supporting guidance
- Managing technical lock-in in the cloudGovernment Digital Service and Central Digital and Data Office
- AI Omnibus enters into force and AI Act implementation overviewEuropean Commission, DG CONNECT
- Web Content Accessibility Guidelines 2.2World Wide Web Consortium
Created by Mickarle Sean Junior Wagstaff-Irons - Micky Irons with the Mickai team. Published by Mickai LTD. Last updated 2 October 2026.
NextKeep going
Where to go next
Recommended for you
AI governance: risk registers, evidence and human accountability
Govern an AI system without being an engineer: map hazards, score and evidence them, name owners and stop rights, make oversight real, and check the register with tested code.
Recommended for you
Design a repeatable evaluation suite for an AI application
Build an offline AI evaluation harness with test cases, a rubric, regression comparisons, uncertainty checks and a reproducible release record.
Recommended for you
Permission-aware retrieval and private knowledge bases
Build and test a small retrieval policy that separates tenants, checks document groups before ranking and refuses missing permission matches.