
Claude Skills by ashfordeOU
github.com/ashfordeOUImplement the error-termination rule on the receiving side of the SpaceWire CCSDS packet transfer protocol at ECSS-E-ST-50-53C clause 5.5.4.4: a transfer ended by an error terminator is discarded whole, so no part of the partial packet reaches the user, and the discard is reported rather than absorbed into a counter nobody reads. Evaluate a received sequence for clustered error terminations so a fault in progress is separated from independent upsets, and from a link that is carrying signal wh...
Define the ordered field set a packet transfer protocol data unit is built from. Use when an ECSS-E-ST-50-53C clause 5.4.1.1 sender and receiver have to agree on where every boundary falls: lay out the target logical address, protocol identifier, reserved and user application octets in order after any path-address bytes, close with the self-delimiting packet, compute each field offset and the shortest unit that can carry them, split a received unit back into named fields, and audit a declared...
Audit the function subclause of a SpaceWire service primitive against ECSS-E-ST-50-53 clause 5.2.2.1. Use when a protocol service definition needs its per-primitive purpose statements graded before baseline: confirm every declared primitive carries a function statement, measure the informative content it adds beyond the primitive name, catch a statement that only restates that name, detect parameter, generation-timing or receiver-side detail that belongs in the neighbouring subclauses, flag n...
Validate the packet field that closes a packet transfer protocol data unit. Use when an ECSS-E-ST-50-53C clause 5.3.6 unit has to be checked against the packet it claims to carry: fix the field offset from the path length, read the six-octet primary header, take the declared total length from the header's own length count rather than from the transfer protocol, and compare it with the octets actually present. Report a complete packet, a truncation with its shortfall, an overrun with the trail...
Validate the packet length field of a CCSDS packet transfer protocol data unit carried over SpaceWire under ECSS-E-ST-50-53C clause 5.1.2: confirm the declared octet count fits the field width, separate a real declaration from the reserved not-declared encoding, derive the length the carried packet claims from its own primary header, compare all three against the octets actually received, and discard the transfer when they disagree instead of trusting one. Use when a receiving node has to dec...
Verify the protocol identifier octet of a packet transfer protocol data unit. Use when an ECSS-E-ST-50-53C clause 5.3.3 unit has to be demultiplexed at its destination: fix the identifier offset from the number of path-address bytes that preceded the target address, read the octet there, categorize it as the escape value, a registered protocol or an unclaimed value, compare it against the identifier this protocol is registered under, hand the remainder to the matching handler and drop a unit ...
Validate the protocol identifier field of a SpaceWire packet carrying the CCSDS packet transfer protocol under ECSS-E-ST-50-53C clause 5.5.4.1: confirm a sender wrote the assigned value and nothing else, and on the receiving side separate a transfer belonging to another protocol on the shared link, a zero announcing an extended identifier with further octets to read, and a value held back from assignment, so demultiplexing never reports other traffic as a fault. Use when encoding, demultiplex...
Determine what a SpaceWire CCSDS packet transfer receiver does when the reserved octet after the protocol identifier is not zero, under ECSS-E-ST-50-53C clause 5.5.4.3: the transfer is not conformant with this revision of the protocol, so no packet is handed up and nothing partial reaches the user, and the condition is reported carrying the value actually seen rather than dropped into silence. Grade a received run so one repeated value reads as a peer built to another revision while a scatter...
Assess the reserved field that follows the protocol identifier in a SpaceWire CCSDS packet transfer under ECSS-E-ST-50-53C clause 5.5.4.2, keeping its two obligations on the parties they belong to: the sender writes zero and has no discretion, while the receiver ignores whatever the field holds and must not refuse delivery over it. Audit a run of received transfers for non-conformant senders without turning any of them into discards, and flag a receive path configured to reject on the field a...
Evaluate the reserved octet that a packet transfer protocol data unit carries between its protocol identifier and its user application field. Use when an ECSS-E-ST-50-53C clause 5.3.4 link has to settle sender duty and receiver tolerance: write the held-back pattern on transmission, fix the octet offset from the path length, read it back from a received unit, and apply a stated receiver policy that either discards a deviant octet, accepts it and records the deviation, or accepts it silently, ...
Validate the semantics subclause of a SpaceWire service primitive against ECSS-E-ST-50-53 clause 5.2.2.2. Use when a protocol service definition declares its per-primitive parameter lists and they have to hold together before baseline: check every parameter for a name, a type and a presence category, refuse a conditional parameter with no stated condition, reject duplicate or unnamed entries, then align each request against its paired indication, response and confirm so no mandatory parameter...
Validate a send request handed to the SpaceWire CCSDS packet transfer entity under ECSS-E-ST-50-53C clause 5.5.2, against its three obligations at once: the destination resolves to a usable logical address or a path of output ports, the request carries exactly one complete CCSDS packet whose declared length matches the octets supplied, and the encoded transfer with its address, protocol identifier and reserved octet fits the transmit limit so an over-long request is refused rather than trunca...
Evaluate the status code a sending node writes into a CCSDS packet transfer protocol data unit on SpaceWire under ECSS-E-ST-50-53C clause 5.1.3: check the encoding fits the one octet field, group it against the deployment code assignment as success, a defined error, user-defined, unassigned or reserved, decide whether the receiving node accepts, reports or rejects the transfer, and summarise a run of received codes. Use when a receiver meets a status encoding it did not expect. Trigger: ecss,...
Determine the target logical address octet that opens a packet transfer protocol data unit. Use when an ECSS-E-ST-50-53C clause 5.3.2 encapsulation has to name its destination: categorize a candidate octet as a path-address byte, an assignable logical address, the default address or a reserved value, take the registered address of the destination node, fall back to the default address only where a node has none, prepend the path-address bytes ahead of it, and split a received unit back into p...
Determine the target logical address a sending node writes into a CCSDS packet transfer protocol data unit, and assess a received one, under ECSS-E-ST-50-53C clause 5.1.5: resolve the value from the installation addressing policy, group a received encoding as assignable, the default, a prefix selector or reserved, decide deliver, misrouted or reject at the receiver, and reconcile it with the logical octet the routing prefix ended on. Use when a transfer arrives at a node that does not answer ...
Build and validate the target SpaceWire address field that leads a packet, against ECSS-E-ST-50-53 clause 5.3.1. Use when a route to a target node has to be turned into leading address bytes, or an existing field has to be graded before it is sent: categorize every byte as null padding, path address, logical address or reserved, reject a reserved byte and padding that has drifted out of the leading run, assemble a field from a port list with an optional logical address, pad it to the declared...
Validate the target SpaceWire address prefixed to a CCSDS packet transfer protocol data unit under ECSS-E-ST-50-53C clause 5.1.4: group each leading octet as a router port selector, a logical destination, a configuration port or the reserved encoding, confirm the sequence is a run of selectors terminated at most once, trace what each router consumes, and reconcile the prefix against a directly attached target or a declared hop count. Use when a sending node builds or reviews a route prefix. T...
Implement the receiving side of the SpaceWire CCSDS packet transfer protocol at ECSS-E-ST-50-53C clause 5.5.3: refuse an abnormally terminated transfer before parsing it, strip the leading logical address when the node was addressed logically, read the protocol identifier and reserved octet, then hand exactly one whole CCSDS packet up to the user unchanged, while a transfer under another protocol identifier is passed to its own entity rather than discarded as an error. Use when writing or rev...
Allocate and resolve the user application octet of a packet transfer protocol data unit. Use when an ECSS-E-ST-50-53C clause 5.3.5 node has several users sharing one logical address: fix the octet offset from the path length, read the identifier a received unit carries, hand the packet to the application registered on it and drop a unit whose identifier nothing claims. On the build side, register applications into the node table, refuse an identifier already held and an application registered...
Verify that the user application value of a CCSDS packet transfer protocol data unit reaches the receiving application unchanged under ECSS-E-ST-50-53C clause 5.1.6: check the value fits the field, compare what was sent against what was delivered and count the bits that moved, resolve the delivered value against the receiving application's own assignment, and keep a transport alteration apart from an unrecognised but faithfully carried value. Use when a value arrives that the receiving applic...
Evaluate the when-generated subclause of a SpaceWire service primitive against ECSS-E-ST-50-53 clause 5.2.2.3. Use when a protocol service definition states the conditions under which each primitive is issued and those conditions have to be checked against the declared protocol state machine: resolve every generation rule to a declared state and a declared originating event, find a primitive no rule can ever issue, find two rules firing on one state and event with no distinguishing guard, rep...
Audit a control performance requirement for the elements ECSS-E-ST-60-10C clause 4.1.2 asks it to carry: the parameter, the statistical index, the value and its unit, the evaluation window, the reference frame, the operating condition, and a probability level where, and only where, the index is a statistical one. Report what is absent, what is stated but does not hold together, a completeness score, and a canonical restatement once the statement is whole. Use when reviewing a pointing or cont...
Perform the abort of one executing request sequence under ECSS-E-ST-70-41C clause 6.21.5.7 and report honestly what it did and did not stop. Use when an operator wants a running sequence halted and the engine must decide accept or refuse: refusing an unknown or non-executing identifier rather than absorbing it, stopping at a request boundary without recalling requests already released, discarding the pending requests instead of deferring them, keeping the body loaded so it can be started agai...
Execute the whole-engine abort sweep of ECSS-E-ST-70-41C clause 6.21.5.8 and assemble the report it owes the ground. Use when every executing request sequence must stop at once and the operator cannot name them: refusing an identifier list that would narrow the coverage the request exists for, attempting every executing sequence so a fault on one never stops the sweep reaching the rest, emitting one entry per sequence running when the sweep began with its step reached and outcome, and computi...
Determine what aborting an on-board file copy operation leaves behind under ECSS-E-ST-70-41C clause 6.23.5.4. Use when the task is cancelling one copy or every copy at once and accounting for the wreckage: removing the entry from the copy operation list rather than parking it, deleting a partially written target file so no truncated file survives the cancellation, returning the octets already landed to the target repository free space, tallying the transfer effort that has to be spent again, ...
Convert an on-board moment to and from the absolute-time parameter a packet definition declares, under ECSS-E-ST-70-41C clause 7.3.10. Use when a generation time, a time-tagged release or a collection-interval start reads plausibly wrong on the ground: fixing the time code, the coarse and fine field widths and the epoch in the definition rather than on the wire, truncating downwards so an encoded time never names a later moment, and refusing a time past the coarse span instead of wrapping it ...
Determine whether a detected on-board event actually releases its bound request, under ECSS-E-ST-70-41C clause 6.19.5.2. Use when an event was reported and the expected command never went out, or when one noisy sensor turned a single binding into a command storm: reading the function-level switch before the per-definition one so the answer names the switch that stopped it, separating an event no definition covers from one whose definition is disarmed, releasing the request the definition alre...
Determine whether a stored request sequence may be activated under ECSS-E-ST-70-41C clause 6.21.5.5, and release its first request only once every precondition holds. Use when an activation request names a sequence and the on-board engine must decide accept or refuse: refusing an unknown identifier instead of running nothing, refusing a sequence still under load, refusing one already executing rather than interleaving a second run, checking the stored body against its checksum before anything...
Validate a request that adds event-action definitions to the on-board store under ECSS-E-ST-70-41C clause 6.19.8.1. Use when new on-board reactions are uplinked and every instruction is judged on its own: an event identity the store already holds is a duplicate and fails for that instruction, a repeated identity or an empty instruction list is malformed, an instruction that would take the store past its capacity is refused, and an action that is itself an event-action management request is re...
Determine which application processes an on-board connection test may address under ECSS-E-ST-70-41C clause 6.17.4.1, where accessibility is declared per test-service instance and is never implied by an application process merely existing. Use when the task is validating a declared accessibility list for duplicates, reserved and out-of-range identifiers, partitioning requested identifiers into reachable and refused with a reason for each refusal, spotting a declaration naming a process the mi...
Validate a bit-string parameter field against ECSS-E-ST-70-41C clause 7.3.7, where an ordered run of bits with no numeric meaning is carried either at a length the format code fixes or behind a count field. Use when a status word comes back one bit adrift, or when a variable pattern is outgrowing its count field: holding a fixed field to exactly its declared length rather than padding or truncating it, appending pad bits only at the trailing end and keeping them out of the value, bounding a v...
Validate and encode a boolean parameter field under ECSS-E-ST-70-41C clause 7.3.2, where the boolean type admits exactly one format code and occupies exactly one bit. Use when the task is laying out on-board flags or reading them back off the wire: accepting only the one defined type pair, refusing the integers 0 and 1 and the string forms that a looser encoder would quietly accept as truth values, packing a run of flags most significant bit first so the first field of the definition is the f...
Validate and apply a change to the object memory parameter definitions an application holds, under ECSS-E-ST-70-41C clause 6.20.5.3. Use when a ground request re-points named parameters at new object memory locations: resolving every named parameter against the definition store, refusing a request that names one twice, checking the target memory is declared, keeping each new binding wholly inside that memory extent and on its alignment unit, refusing a fixed definition and a settable paramete...
Validate and apply the raw memory parameter definition changes of ECSS-E-ST-70-41C clause 6.20.5.2. Use when a request re-points on-board parameters at different memory: resolving each named raw memory parameter, refusing a memory area the memory management service does not hold, refusing a region that runs past the end of its area, refusing a base address that breaks the area's access alignment, refusing a length that disagrees with the width the parameter's representation needs, applying ev...
Evaluate a request to change the properties of an on-board packet store under ECSS-E-ST-70-41C clause 6.15.3.9. Use when a telecommand resizes a store, switches it between bounded and circular or moves it to another virtual channel: refusing any change while storage is enabled or a retrieval is open, refusing a capacity below the octets already held or off the allocation block, requiring an empty store before the type changes, holding the sum of capacities inside the memory pool, and returnin...
Validate, encode and decode the character-string parameters a packet definition declares, under ECSS-E-ST-70-41C clause 7.3.9. Use when a string field comes back truncated, padded or ambiguous on the ground: choosing between a fixed-length field and a counted variable-length one, sizing the count field so the declared maximum is actually representable, refusing a character outside the declared repertoire instead of substituting it, and catching a pad octet that lies inside the repertoire so a...
Compute the checksum of one stored request sequence under ECSS-E-ST-70-41C clause 6.21.7 and say whether the body on board is still the body that was uplinked. Use when a sequence has sat in the store between uplink and activation and its integrity must be established: refusing an unknown identifier, reading the stored body in stored order rather than the source the ground still has, refusing an empty or part-loaded body, refusing an algorithm the store does not declare, reporting identifier,...
Validate the parameter interface an on-board control procedure exchanges with the OBCP engine that hosts it, under ECSS-E-ST-70-41C clause 6.18.4.7. Use when an activation is rejected for an argument the ground believes it supplied, or when a procedure runs on a value nobody gave it: binding supplied arguments to declared parameters by name, refusing an undeclared name instead of dropping it, filling an omitted optional input from its declared default, refusing an omitted mandatory one, type-...
Compute the downlink configuration of a large packet transfer subservice under ECSS-E-ST-70-41C clause 6.13.3.1: derive the usable part data field from the telemetry packet limit and the part report overhead, count the parts the declared largest message needs, and weigh that count against the part sequence number field width and the transaction identifier namespace. Use when a downlink part size, a part number field width, a transaction identifier pool or a largest supported message size is b...
Determine what a by-time-range retrieval of an on-board packet store will actually cover under ECSS-E-ST-70-41C clause 6.15.3.5. Use when a start or abort of a bounded retrieval goes out and the requested window does not match what the store holds: rejecting an unordered window outright, refusing a store already engaged in either retrieval kind, selecting inclusively on both bounds, reporting a leading or trailing gap instead of a silent short read, and completing an empty window with no pack...
Model the engine-level control of an on-board control procedure engine, under ECSS-E-ST-70-41C clause 6.18.5.1. Use when an engine restart left procedures that the ground expected to resume, or when a resume restarted one somebody had deliberately stopped: separating a stop, which terminates the live procedures for good, from a hold, which suspends them reversibly, releasing on resume only the procedures the engine itself held, refusing an activation into an engine that is stopped or held, an...
Model the open retrieval state machine of the on-board packet stores under ECSS-E-ST-70-41C clause 6.15.3.4. Use when a start, suspend, resume or abort goes to packet stores and the question is which of them accept it: opening a retrieval only where none is engaged, refusing a store already in a by-time-range retrieval, placing the cursor on the first packet at or after the start time, accepting a start beyond everything held, keeping overwrite protection across a suspension, and accepting a ...
Manage the storage function of the on-board packet stores under ECSS-E-ST-70-41C clause 6.15.3.3. Use when an enable, a disable or a report-type change goes to several stores at once and the question is what each store ends up doing: switching storage per store, accepting an enable on a store already storing as a no-change, treating a store named twice in one command as malformed, failing for only the store the application does not hold while the rest still act, and refusing to delete a repor...
Evaluate the execution function of a position-based schedule under ECSS-E-ST-70-41C clause 6.22.6.3: run enable, disable and reset control commands against the subservice state, advance the reported orbit position, and decide which held activities the function releases and which it flies past. Use when enabling or disabling position-based schedule execution, resetting the schedule, reporting the execution status, or the disposition of activities that came due while the function was disabled i...
Validate the creation and deletion of on-board files under ECSS-E-ST-70-41C clause 6.23.4.1: replay a run of create and delete requests over a repository, refuse a duplicate file name, an allocation past the per-file ceiling or past the free space, a repository already at its file limit, a delete of an absent file, a locked file or a file held open by a transfer, and account the free space after every request. Use when the acceptance rules, free space accounting or refusal reporting of on-boa...
Manage the creation and deletion of position-based scheduling groups, under ECSS-E-ST-70-41C clause 6.22.8.2. Use when a group request came back part-rejected, or before deleting a group that still holds a load: refusing a create for an identifier the registry already holds and once the group limit is reached, refusing a delete for an unknown group and for one still enabled, starting every new group empty and disabled, counting by sub-schedule the activities a deletion discards before they ar...
Determine the type a deduced parameter takes from an earlier field of the same packet, under ECSS-E-ST-70-41C clause 7.3.12. Use when a packet definition leaves a parameter untyped until run time: checking that the deducing field precedes the field it settles, that every value the selector admits maps to a type the reader knows, and that the mapping covers the selector value space, because one unmapped value does not spoil a single parameter, it moves every field after it and leaves the rest ...
Analyze a request that clears the whole event-action store in one step under ECSS-E-ST-70-41C clause 6.19.8.4. Use when ground wipes every on-board reaction at once and the first question is whether the request is admissible at all: it is refused while the event-action function is still enabled, so a live reaction chain cannot vanish mid-pass, and it is admitted only once the function has been switched off. Covers the wholesale clearance that spares no definition enabled or disabled, the acti...
Verify and apply a request that deletes named event-action definitions under ECSS-E-ST-70-41C clause 6.19.8.3. Use when stale on-board reactions are being cleared and each instruction earns its own verdict: an identity the store does not hold fails for that instruction alone, a definition still enabled is refused because a live reaction must not be removed under it, and a repeated identity or an empty instruction list is malformed so nothing is applied. Covers the action binding that goes wit...
Execute the deletion of on-board packet store contents up to a named storage time under ECSS-E-ST-70-41C clause 6.15.3.7. Use when a recorder is being emptied after a pass and the question is what survives the cut: removing inclusively at the named time, refusing a store a by-time-range retrieval is walking, clamping the cut to an open retrieval cursor so unsent packets are kept and the clamp is reported, accepting a time older than everything held as an empty delete, and reporting the freed ...