Adam Daley 1420584f6d Add security-advisory-triage skill (#4232)
* Add security-advisory-triage skill

Codifies the two-stage workflow for handling a reported GitHub Security
Advisory: verify it against current code with file:line evidence, then
refine its title/description/CVSS/CWE metadata to match this repo's
actual publish conventions before applying it. Includes a living
house-style reference derived from this repo's own published advisories.

Lives at .agents/skills/ with .claude/skills symlinked to it, matching
the existing AGENTS.md/.claude/CLAUDE.md convention for cross-tool
agent support.

* Fix spellcheck: add GHSA/macrovector/rubygems, ignore skills reference dir

The skills reference file legitimately contains GHSA advisory IDs as
provenance examples; those are opaque identifiers, not real words, and
new ones will keep appearing as more advisories get referenced there
over time, so excluding the directory from spellcheck avoids repeated
dictionary churn rather than fixing it once.

* Address CodeRabbit review on security-advisory-triage skill

- Stage 1's current-code check now requires an exact revision match
  (fetch + clean worktree + exact rev-parse comparison) instead of only
  an ancestor check, which could pass against a stale or divergent base.
- Stage 1's related-history step now queries each advisory state
  explicitly with --method GET, and calls out that gh api silently
  sends a POST (hitting the advisory-creation endpoint) when -f is used
  without --method GET. Verified directly against this repo: an
  unfiltered call does return every state for a maintainer-authenticated
  token, but explicit per-state queries are more portable.
- Confidentiality note broadened to cover chat/review/tool output, not
  just committed artifacts.
- CVSS guidance now distinguishes the nested read path
  (cvss_severities.cvss_v3/cvss_v4) from the flat write field
  (cvss_vector_string), and notes severity/cvss_vector_string are
  mutually exclusive on write.
- The live-advisory PATCH checklist now lists the actual top-level
  fields (summary, description, cwe_ids, cvss_vector_string/severity)
  instead of vaguely saying 'the description body', notes
  vulnerabilities is an array rather than assuming index [0] is
  everything, and says to PATCH the complete object per entry rather
  than a partial one.
- Added language tags to two fenced code blocks (shell, markdown) per
  markdownlint MD040.

* Fix data-loss gap in vulnerabilities PATCH guidance

The 'send the complete object' instruction added last round listed only
four fields (package.ecosystem/name, vulnerable_version_range,
patched_versions) and omitted vulnerable_functions, which is a real
field on the object (confirmed: this session's own successful PATCH
sent it as an empty array). Following that guidance literally on an
advisory where vulnerable_functions is actually populated would erase
it. Added the missing field.
2026-08-28 19:38:14 +01:00


FOSSBilling logo

Download button

CI Download Latest License CodeFactor Financial Contributors Crowdin Discord Stand With Ukraine Contributor Covenant

Note

FOSSBilling is under active development and currently considered beta. Expect rough edges and limited support.

FOSSBilling is a free, open-source billing and client management system. It helps online service businesses automate invoicing, payments, and client communication. While it’s popular with web hosting providers, it also works well for software licensing, digital downloads, and subscription services.

Features

  • Billing & Invoicing: automated invoices, reminders, and basic reporting.
  • Client Management: a central place for client data and communication.
  • Extensibility: extension-friendly architecture for integrations and custom features.
  • Payments: support for multiple gateways.
  • Translations: community-powered, multi-language interface.
  • Responsive UI: usable on desktop and mobile.
  • Security-focused: built with security best practices in mind.

Getting Started

Requirements

FOSSBilling runs on standard LAMP/LEMP stacks. For the latest system requirements (PHP version, extensions, database, etc.), see the official requirements.

Installation

Follow the step-by-step Getting Started guide.

Just exploring? Try the public demo.

Contributing

We welcome contributions from the community! We’re actively modernizing the codebase and there’s plenty to do.

If you prefer to start a conversation first, drop by the forum or say hello on Discord.

Star History

Star History Chart

Not a developer? Starring the repository helps others discover the project.

License

FOSSBilling is released under the Apache 2.0 license. See LICENSE for details.

Languages
PHP 75.7%
Twig 21.5%
TypeScript 2.2%
Python 0.2%
SCSS 0.2%