speckit-constitution
Warn
Audited by Gen Agent Trust Hub on Sep 6, 2026
Risk Level: MEDIUMCOMMAND_EXECUTIONINDIRECT_PROMPT_INJECTIONDYNAMIC_EXECUTION
Full Analysis
- [COMMAND_EXECUTION]: The skill reads and processes the
.specify/extensions.ymlconfiguration file to identify extension hooks. It instructs the agent to execute commands found under thehooks.before_constitutionandhooks.after_constitutionkeys. Mandatory hooks (whereoptionalis false) are triggered via theEXECUTE_COMMANDdirective, which requires the agent to run the command and wait for the result before proceeding. - [INDIRECT_PROMPT_INJECTION]: The skill processes data from various repository files, including templates and a YAML configuration file, which serves as an injection surface. An attacker who can influence the content of the
.specify/extensions.ymlfile (e.g., through a malicious pull request or repository compromise) can define arbitrary commands that the agent is instructed to execute. - Ingestion points:
.specify/extensions.yml,.specify/memory/constitution.md,.specify/templates/*.md,README.md,docs/quickstart.md. - Boundary markers: None identified in the prompt templates or file processing logic.
- Capability inventory: The skill has the capability to write to the filesystem (
.specify/memory/constitution.md) and execute shell/agent commands (EXECUTE_COMMAND). - Sanitization: No validation or sanitization is performed on the command strings or principles derived from external files.
- [DYNAMIC_EXECUTION]: The skill dynamically generates command identifiers at runtime by performing string transformations on values read from the configuration file. Specifically, it converts dot-notated hook names into slash commands by replacing dots with hyphens (e.g.,
speckit.git.commitbecomes/speckit-git-commit).
Audit Metadata