Ghidra Headless Frida Runtime Injection
Use this phase skill when planning must support bounded Frida runtime capture
without weakening the repository's headless-only and Markdown-first contract.
The canonical contract is ./planning-brief.md. Use it
to shape planning outputs, select reusable common Frida scripts, and audit
generated artifacts for missing capture-manifest or handoff requirements.
Phase Focus
This phase covers:
- reproducible CLI/headless Frida runtime capture
- selection of tracked reusable common Frida scripts
- capture-manifest generation and runtime artifact references
- explicit audit gates before evidence import can begin
Supported Runtime Evidence Scenarios
The first-release common script library supports all five first-class runtime
evidence scenarios:
- function signature analysis
- decompilation-to-original comparison
- runtime call-tree tracing
- dynamic dispatch or vtable observation
- hot-path or coverage observation
Non-Negotiable Constraints
- CLI/headless only. GUI-driven capture is out of scope.
- Open-ended interactive exploration is out of scope.
- Runtime artifacts stay under
.work/ghidra-artifacts/ and are referenced
explicitly rather than copied into tracked skill directories.
- Generated planning artifacts must keep selected scripts, capture commands,
produced artifacts, and audit gates visible in Markdown.
- Reusable script-library coverage gaps, behavior changes, or helper changes
route to
../ghidra-headless-script-review/SKILL.md.
- Successful runtime capture hands off to
../ghidra-headless-frida-evidence/SKILL.md.
- No downstream
speckit extension or constitution change is required.
Required Inputs
- normalized target identity and scope
- requested runtime evidence scenario
- reusable script selection or coverage-gap decision
- reproducible CLI/headless command shape
- expected runtime artifacts and capture-manifest fields
- audit gates required before evidence import can proceed
- optional stricter local rule overlays
Runtime Choice UX
When the running skill genuinely needs the user to choose between runtime
scenarios, reusable scripts, coverage-gap routes, or other discrete options:
- If the runtime exposes a structured choice input tool (for example
request_user_input), use it instead of a plain-text list.
- Keep each option short, mutually exclusive, and user-facing.
- Put the recommended or default option first whenever the current manifest or
scenario evidence clearly favors one, and state that recommendation briefly.
- Fall back to Markdown or plain-text lists only when no structured choice
input is available.
- If one reviewed runtime scenario or reusable script already stands as the
justified default, do not force a dialog; record the default path and the
manifest evidence behind it.
Common Script Selection Workflow
- Start in
./frida-scripts/manifest.md to
match the request to one of the five supported scenarios.
- Confirm the invocation shape, expected outputs, and coverage notes for the
candidate script in
./frida-scripts/README.md.
- Record the selected script identifier or identifiers in the capture
manifest.
- If no script covers the request, or if behavior/output expectations change,
stop and route the change through script review.
Required Outputs
- a capture plan that stays reproducible through CLI/headless invocation
- a runtime capture manifest using
./templates/frida-capture-manifest.md
- explicit artifact references under
.work/ghidra-artifacts/
- a handoff to the Frida evidence-import phase with audit-gate results visible
How To Use This Skill
- Fill in
./planning-brief.md with the target,
scenario, selected reusable script, command shape, and audit gates.
- Confirm the matching script and coverage notes in
./frida-scripts/manifest.md.
- Use the same brief to audit generated
spec.md, plan.md, and tasks.md.
- If the generated artifacts weaken CLI/headless capture, hide runtime
outputs, or skip the evidence-import handoff, refine or regenerate the
planning artifacts instead of weakening this contract.
Examples
Next Step Routing
- Use this phase after intake when Frida runtime capture still needs to be
planned and executed through a reusable, reviewable script path.
- Move to
../ghidra-headless-frida-evidence/SKILL.md
once capture artifacts and the capture manifest are ready for import and
adjudication.
- Move to
../ghidra-headless-script-review/SKILL.md
when the request needs new reusable script coverage, changed behavior, or a
reusable helper that alters manifest-generation or normalization behavior.
1---2name: ghidra-headless-frida-runtime-injection3description: Phase skill for reproducible CLI/headless Frida runtime capture, reusable common script selection, and capture-manifest handoff into evidence import.4---56# Ghidra Headless Frida Runtime Injection78Use this phase skill when planning must support bounded Frida runtime capture9without weakening the repository's headless-only and Markdown-first contract.1011The canonical contract is [`./planning-brief.md`](./planning-brief.md). Use it12to shape planning outputs, select reusable common Frida scripts, and audit13generated artifacts for missing capture-manifest or handoff requirements.1415## Phase Focus1617This phase covers:1819- reproducible CLI/headless Frida runtime capture20- selection of tracked reusable common Frida scripts21- capture-manifest generation and runtime artifact references22- explicit audit gates before evidence import can begin2324## Supported Runtime Evidence Scenarios2526The first-release common script library supports all five first-class runtime27evidence scenarios:2829- function signature analysis30- decompilation-to-original comparison31- runtime call-tree tracing32- dynamic dispatch or vtable observation33- hot-path or coverage observation3435## Non-Negotiable Constraints3637- CLI/headless only. GUI-driven capture is out of scope.38- Open-ended interactive exploration is out of scope.39- Runtime artifacts stay under `.work/ghidra-artifacts/` and are referenced40 explicitly rather than copied into tracked skill directories.41- Generated planning artifacts must keep selected scripts, capture commands,42 produced artifacts, and audit gates visible in Markdown.43- Reusable script-library coverage gaps, behavior changes, or helper changes44 route to [`../ghidra-headless-script-review/SKILL.md`](../ghidra-headless-script-review/SKILL.md).45- Successful runtime capture hands off to46 [`../ghidra-headless-frida-evidence/SKILL.md`](../ghidra-headless-frida-evidence/SKILL.md).47- No downstream `speckit` extension or constitution change is required.4849## Required Inputs5051- normalized target identity and scope52- requested runtime evidence scenario53- reusable script selection or coverage-gap decision54- reproducible CLI/headless command shape55- expected runtime artifacts and capture-manifest fields56- audit gates required before evidence import can proceed57- optional stricter local rule overlays5859## Runtime Choice UX6061When the running skill genuinely needs the user to choose between runtime62scenarios, reusable scripts, coverage-gap routes, or other discrete options:63641. If the runtime exposes a structured choice input tool (for example65 `request_user_input`), use it instead of a plain-text list.662. Keep each option short, mutually exclusive, and user-facing.673. Put the recommended or default option first whenever the current manifest or68 scenario evidence clearly favors one, and state that recommendation briefly.694. Fall back to Markdown or plain-text lists only when no structured choice70 input is available.715. If one reviewed runtime scenario or reusable script already stands as the72 justified default, do not force a dialog; record the default path and the73 manifest evidence behind it.7475## Common Script Selection Workflow76771. Start in [`./frida-scripts/manifest.md`](./frida-scripts/manifest.md) to78 match the request to one of the five supported scenarios.792. Confirm the invocation shape, expected outputs, and coverage notes for the80 candidate script in [`./frida-scripts/README.md`](./frida-scripts/README.md).813. Record the selected script identifier or identifiers in the capture82 manifest.834. If no script covers the request, or if behavior/output expectations change,84 stop and route the change through script review.8586## Required Outputs8788- a capture plan that stays reproducible through CLI/headless invocation89- a runtime capture manifest using90 [`./templates/frida-capture-manifest.md`](./templates/frida-capture-manifest.md)91- explicit artifact references under `.work/ghidra-artifacts/`92- a handoff to the Frida evidence-import phase with audit-gate results visible9394## How To Use This Skill95961. Fill in [`./planning-brief.md`](./planning-brief.md) with the target,97 scenario, selected reusable script, command shape, and audit gates.982. Confirm the matching script and coverage notes in99 [`./frida-scripts/manifest.md`](./frida-scripts/manifest.md).1003. Use the same brief to audit generated `spec.md`, `plan.md`, and `tasks.md`.1014. If the generated artifacts weaken CLI/headless capture, hide runtime102 outputs, or skip the evidence-import handoff, refine or regenerate the103 planning artifacts instead of weakening this contract.104105## Examples106107- Runtime capture handoff example:108 [`./examples/frida-runtime-speckit-handoff.md`](./examples/frida-runtime-speckit-handoff.md)109- Runtime capture violation example:110 [`./examples/frida-runtime-contract-violation.md`](./examples/frida-runtime-contract-violation.md)111112## Next Step Routing113114- Use this phase after intake when Frida runtime capture still needs to be115 planned and executed through a reusable, reviewable script path.116- Move to [`../ghidra-headless-frida-evidence/SKILL.md`](../ghidra-headless-frida-evidence/SKILL.md)117 once capture artifacts and the capture manifest are ready for import and118 adjudication.119- Move to [`../ghidra-headless-script-review/SKILL.md`](../ghidra-headless-script-review/SKILL.md)120 when the request needs new reusable script coverage, changed behavior, or a121 reusable helper that alters manifest-generation or normalization behavior.