Agent Skillsnasa/fprime › jpl-design-principles

jpl-design-principles

GitHub

基于JPL设计原则的软件检查清单,用于F Prime飞行软件的开发与修改,以及PR审查中识别设计违规。涵盖异常调查、鲁棒性、容错保护、测试规范及资源余量等核心原则。

.github/skills/jpl-design-principles/SKILL.md nasa/fprime

触发场景

编写或修改F Prime飞行软件代码 进行代码审查以检查JPL设计原则合规性 评估飞行系统设计的鲁棒性与容错能力

安装

npx skills add nasa/fprime --skill jpl-design-principles -g -y
更多选项

非标准路径

npx skills add https://github.com/nasa/fprime/tree/devel/.github/skills/jpl-design-principles -g -y

不安装直接使用

npx skills use nasa/fprime@jpl-design-principles

指定 Agent (Claude Code)

npx skills add nasa/fprime --skill jpl-design-principles -a claude-code -g -y

安装 repo 全部 skill

npx skills add nasa/fprime --all -g -y

预览 repo 内 skill

npx skills add nasa/fprime --list

SKILL.md

Frontmatter
{
    "name": "jpl-design-principles",
    "description": "Software-relevant distillation of the JPL Design Principles (DP10, External Release V4). Use as a developer checklist when writing or modifying F Prime flight software, and as a reviewer reference for flagging JPL Design Principle violations in PRs. Keywords: JPL, design principles, flight software, margins, fault protection, testability, keep-it-simple, KISS, robustness."
}

Skill: JPL Design Principles — Software Distillation

Source: JPL Design Principles — "Design, Verification/Validation and Operations Principles for Flight Systems" (DP10, External Release V4). Numbering below mirrors the original document sections so every rule is traceable.


Section 2 — Principles (software-relevant subset)

P-2.1.1 Enable Anomaly Investigations

Design and operate the mission so that future anomaly investigations have the data needed to prevent recurrence — even if the mission is lost.

P-2.2.1 Mission Robustness

Protect threshold mission in the presence of flight system faults, mission system faults, and operator errors. Stored critical data shall be protected from loss due to credible fault scenarios.

P-2.2.3 Fault Protection Expectations

Fault protection preserves flight system health, safety, and consumables throughout all mission phases, except when completion of time-critical events takes priority.

P-2.2.5 Escapes

Take actions during I&T and operations to detect errors and reduce the chance of escapes.

P-2.2.6 Test As You Fly

Test systems in conditions that match or exceed flight conditions; fly systems within the bounds already tested.

P-2.3.1 Design for Ops

Develop the project and flight system keeping operational impacts of design choices in mind. Encourage approaches that reduce operational complexity and interdependencies (fewer calibrations, more on-board autonomy, robust margins). Critical flight software parameter updates shall have the same rigor as a full FSW update.

P-2.3.2 Unambiguous

Design flight and ground systems to set and know the state of the flight system unambiguously.

P-2.3.3 Fault Avoidance

Take design action to avoid building-in known vulnerabilities.

P-2.3.6 Graceful Degradation

Build design robustness through graceful degradation following a failure — incremental loss of capability such that a reduced set of mission requirements is still met.

P-2.3.7 Fault Recovery

Full mission capability is retained or recovered following faults or operator errors.

P-2.4.1 Technical Resource Margins for Operations

Preserve a portion of technical resource margins (power, memory, throughput, bus bandwidth, delta-V) at launch to solve problems after launch.

P-2.4.2 Reliability through Design Margins

Margins are established consistent with design maturity and mission environments, accommodate "unknown unknowns," and enable changes with minimal ripple effects.

P-2.5.1 Margins for Development

Manage development risk through margin establishment. Margins may follow a glide slope (e.g., mass/power decrease over lifecycle) or be set once (e.g., pointing/stability).

P-2.5.2 Avoid Local Optimization

Constrain the number and type of interfaces to avoid duplication of design and testing effort at the system level.

P-2.6.1 Follow Identified Standards

Follow identified standards or practices (possibly with JPL exceptions).

P-2.6.2 Follow Software Best Practices

Follow software best practices as mapped to Design Rules in Section 4.11.


Section 4 — Flight System Design Rules (software-relevant subset)

DR-4.1.3.1 Single Failure Tolerance

No single failure of any element shall result in failure to meet threshold mission requirements. All single-point failures must be identified.

DR-4.1.3.2 Protection Against Operator Errors

The design shall protect against ground operator errors that could result in loss of mission or significant impact.

DR-4.4.4.4 Assured Commanding

Commanding functions shall be robust to power outages and degraded communications (e.g., hardware command decoding, non-volatile memory).

DR-4.4.4.6 Commanding Reliability

Provide protection against all incorrect commands and against correct but untimely commands that risk health/safety, initiate irreversible state changes, threaten consumables, or jeopardize commandability.

DR-4.4.4.8 Onboard Command Processing Approach

Avoid direct memory location manipulation for command processing. Use software functions to translate commands into actions.

DR-4.4.4.9 Two Independent Commands for Hazardous Events

Initiation of hazardous or mission-critical in-flight events shall require at least two independent commands or actions.

DR-4.4.6.1 Visibility of S/C Status

Provide telemetry data to assess spacecraft status under normal, stressed, and faulted operations — including health, anomaly determination, and state visibility.

DR-4.4.6.4 Visibility of Spacecraft State

Permit ground operators to rapidly and unambiguously determine spacecraft state, particularly fault protection responses, during the first part of a tracking pass.

DR-4.4.6.8 Visibility to Reconstruct Faults

Provide visibility to support post-mortem analysis of activities with potential for mission-catastrophic outcome.

DR-4.4.7.1 Clock and Counter Rollover

Spacecraft shall continue to operate in the event of rollover of spacecraft clocks and/or incremental counters (hardware or software).

DR-4.9.1.2 Protection for Credible Single Faults

Fault protection shall handle all credible single faults within all expected environmental conditions.

DR-4.9.1.5 Tolerance to False Alarms

The spacecraft shall tolerate execution of fault protection in response to false alarms at all times throughout the mission.

DR-4.9.1.6 Variation in FP Behavior

Variations in fault protection behavior shall be based directly on system mode or activity, not on individual enable/threshold manipulation.

DR-4.9.1.7 Speed of Fault Detection and Response

Fault protection shall respond in a timely manner to identified threats to health, safety, and/or mission success.

DR-4.9.2.2 Flight System Safing

Following fault conditions, fault protection shall autonomously configure the spacecraft to a safe, sustainable, ground-commandable mode preserving vital resources and providing at least an RF carrier downlink.

DR-4.9.2.3 Autonomous Completion

For events that must execute without ground intervention, fault protection shall endeavor to ensure autonomous, timely completion.

DR-4.9.3.1 In-Flight Commandability

Fault protection design shall permit ground operators to easily modify control settings (enables, thresholds, persistence) in flight.


Section 4.11 — Flight Software System Design (complete)

DR-4.11.1.1.1 Documentation of Architecture Design

Document architectural elements, external interfaces, interfaces between elements, element responsibilities, and interaction constraints.

DR-4.11.1.1.2 Architectural Analysis of Quality Attributes

Architecture documentation shall include multiple views and support evaluation of key quality attributes (performance, availability, maintainability, modifiability, security, testability, usability).

DR-4.11.1.3 Semantics of Data Interfaces

Semantics of data across public interfaces shall be clearly specified and, if possible, verified automatically at build time (range, precision, units, coordinate frames).

DR-4.11.1.4 Compatibility with COTS Tools

Flight software shall operate on commercial platforms with little change, so tests on those platforms are substantially relevant to V&V.

DR-4.11.1.5 Demonstrable Correctness Properties

Software should have demonstrable correctness properties supported by appropriate static analysis techniques.

DR-4.11.2.1 Nominal Initialization

Flight software shall initialize software and hardware to a known, safe, and deliberate state.

DR-4.11.2.2 Multiple Restart Initialization

Software shall detect off-nominal restarts and successively reinitialize with less dependency on preserved state until a fully known configuration and stable operation are restored.

DR-4.11.2.3 Minimalist Boot

Boot implementation shall include a minimalist configuration requiring minimum on-board resources for vehicle safety and ground intervention.

DR-4.11.2.4 System Initialization Trace Telemetry

Flight software shall record and transmit its progress through each initialization attempt.

DR-4.11.3.1 Use of Standards

Flight software shall employ applicable JPL standard products, formats, interfaces, and processes.

DR-4.11.3.3 Parameter and Argument Specification

Parameters and arguments shall be specified in terms of their attributes. Physical units and reference frames shall be specified and checked for consistency (automatically where possible).

DR-4.11.4.2 Response to Incorrect Commands/Data/Memory

Flight software shall detect and respond safely to: (a) corrupted commands, data, loads, and memory faults; (b) incorrectly formatted data including invalid or out-of-range parameters; (c) commands/data invalid in the current context.

DR-4.11.4.3 Protection from Unintended Software Modification

Flight software modifiable during flight shall be protected from unintended modifications (operations errors, SEEs, hardware problems).

DR-4.11.4.5 Response to Resource Over-Subscription

Software shall contain a robust response when computer resources are oversubscribed (buffer overflow, rate-group overrun, excessive interrupts).

DR-4.11.4.6 Response to I/O Anomalies

Software shall tolerate and continue functioning when periodic inputs are missing or I/O fails/completes unsuccessfully/is invalid.

DR-4.11.4.7 Use of Time-Outs

Software shall detect and respond appropriately to failures to complete required activities on time (e.g., watchdog timers).

DR-4.11.4.11 Protection Against Incorrect Memory Use

Protect against execution in data areas, using code as data, and unintended overwriting of code areas.

DR-4.11.4.12 Data Set Consistency

Ensure data sets and parameter lists are consistent when passed among threads — no danger of using a mixture of old and new data.

DR-4.11.4.13 Thread-Safe Operations

Software shall be demonstrated free of deadlocks, failures to make progress, race conditions, and other threats to multi-threaded operations.

DR-4.11.4.14 Software Managed State Transitions

Avoid uncertain, unsafe, or hazardous consequential states during software-managed state transitions. Account for all transition steps and their timing; detect incomplete/interrupted transitions and reinforce a known configuration.

DR-4.11.5.2 Design for Incremental Verification

Enable easy software testing at unit, module, subsystem-testbed, and system-testbed levels including regression testing.

DR-4.11.5.4 Stress Testing

Software shall degrade with understandable behavior when stressed beyond performance limitations (singularities, capability exceedance, identified uncertainties).

DR-4.11.6.1 Self-Test Capability

Include capabilities to test operation and permit timely fault diagnostics. If not removed for flight, test capabilities shall not damage hardware or interfere with proper operation.

DR-4.11.6.2 Fault Diagnostics

Incorporate test/diagnostic code early (by PDR design, by CDR code), accessible through flight interfaces for rapid problem resolution.

DR-4.11.6.3 Measurement of Constrained Resources

Provide easy and timely visibility into computing resource usage (throughput, memory, bus utilization, stack headroom, cycle slip statistics, fragmentation, memory leaks, allocation latency).


Section 6.3.5 — Flight Software Margins

DR-6.3.5.1 Margin Definitions

Margin = Capability − CBE. % Margin = 100% × (Margin / Capability).

DR-6.3.5.3 Margins at Key Milestones

Milestone Computer Selection PDR CDR Launch
% Margin 75% 60% (no spec) 20%

Applies to constrained resources: computing capacity, memory, throughput, bus bandwidth, etc.


Section 8 — V&V (software-relevant subset)

DR-8.2.1 Subsystem Pre-Delivery Verification

All flight hardware and software shall be functionally verified to conform to all allocated requirements prior to delivery to ATLO.

DR-8.3.2.2 Software Regression Testing

New flight software versions delivered to ATLO shall undergo regression testing on the flight vehicle prior to use in system-level verification.

DR-8.3.3.5 Phasing Test

Phasing tests in final flight configuration shall verify proper operation of polarity-sensitive functions, including software.


Section 9 — Flight Operations (software-relevant subset)

DR-9.2.2 Post-Launch FSW Update Rigor

Post-launch FSW updates shall have the same rigor (review, testing, safeguards, procedures) as pre-launch development, including functional testing on a testbed.

DR-9.2.3 In-Flight Parameter Update

Critical on-board parameter updates shall have the same rigor as pre-launch parameter selection, including testbed functional testing.

DR-9.5.1 Operating Margins for Real-Time Operations

Plan, maintain, and monitor operating margins for system resources (power, thermal, comms links, computer memory, timing, throughput, bus bandwidth, FP thresholds/persistences) in all flight activities.

版本历史

  • 7d8f579 当前 2026-08-20 11:33

同 Skill 集合

.github/skills/agent-skill-authoring/SKILL.md
.github/skills/ci-test-runtime-policy/SKILL.md
.github/skills/fprime-cmake-build-system/SKILL.md
.github/skills/fprime-component-design-fpp/SKILL.md
.github/skills/fprime-component-development/SKILL.md
.github/skills/fprime-component-implementation/SKILL.md
.github/skills/fprime-component-integration-test/SKILL.md
.github/skills/fprime-component-requirements/SKILL.md
.github/skills/fprime-component-unit-test/SKILL.md
.github/skills/fprime-ground-input-tracing/SKILL.md
.github/skills/fprime-hardware-input-tracing/SKILL.md
.github/skills/fprime-topology-development/SKILL.md
.github/skills/fprime-unit-testing/SKILL.md
.github/skills/maintainer-lookup/SKILL.md
.github/skills/post-inline-review/SKILL.md
.github/skills/pr-diff-scoping/SKILL.md
.github/skills/prompt-injection-precheck/SKILL.md
.github/skills/re-review-state/SKILL.md
.github/skills/triage-classifier/SKILL.md
.github/skills/write-system-functional-doc/SKILL.md
.github/skills/fprime-cpp-design/SKILL.md

元信息

文件数
0
版本
efce12d
Hash
3fdaaf38
收录时间
2026-08-20 11:33

首页 - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-09-16 22:01
浙ICP备14020137号-1