Repository navigation
docs: improve repo discoverability and add community files #27
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,69 @@ | ||
| name: Bug report | ||
| description: Something in the skill is wrong, stale, or doesn't work | ||
| labels: ["bug"] | ||
| body: | ||
| - type: markdown | ||
| attributes: | ||
| value: | | ||
| This tracker is for the **skill** — its instructions, reference docs, and packaging. | ||
| For problems with CrowdSec itself, open an issue on | ||
| [crowdsecurity/crowdsec](https://github.com/crowdsecurity/crowdsec/issues). | ||
|
|
||
| - type: input | ||
| id: area | ||
| attributes: | ||
| label: Area | ||
| description: Which part of the skill. Free text — a path, a feature, or a rough description. | ||
| placeholder: install · configure · bouncers · WAF/AppSec · operate · debug · migrate · service-api · packaging | ||
| validations: | ||
| required: true | ||
|
|
||
| - type: input | ||
| id: doc | ||
| attributes: | ||
| label: Which file? | ||
| description: Path to the reference doc, if you know it. | ||
| placeholder: skills/crowdsec/references/install/docker.md | ||
| validations: | ||
| required: false | ||
|
|
||
| - type: textarea | ||
| id: what | ||
| attributes: | ||
| label: What happened | ||
| description: What the skill told you to do, and what actually happened. | ||
| validations: | ||
| required: true | ||
|
|
||
| - type: textarea | ||
| id: expected | ||
| attributes: | ||
| label: What should have happened | ||
| validations: | ||
| required: true | ||
|
|
||
| - type: input | ||
| id: env | ||
| attributes: | ||
| label: Environment | ||
| description: Where you ran it. | ||
| placeholder: bare-metal/systemd · Docker · Kubernetes/Helm · pfSense/OPNsense · not environment-specific | ||
| validations: | ||
| required: true | ||
|
|
||
| - type: input | ||
| id: version | ||
| attributes: | ||
| label: CrowdSec version | ||
| description: Output of `cscli version`, if relevant. | ||
| placeholder: "1.8.1" | ||
| validations: | ||
| required: false | ||
|
|
||
| - type: input | ||
| id: agent | ||
| attributes: | ||
| label: Agent | ||
| placeholder: Claude Code 2.x / Codex / Claude.ai web | ||
| validations: | ||
| required: false | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,14 @@ | ||
| blank_issues_enabled: true | ||
| contact_links: | ||
| - name: CrowdSec itself (engine, cscli, bouncers) | ||
| url: https://github.com/crowdsecurity/crowdsec/issues | ||
| about: Bugs in CrowdSec rather than in this skill. | ||
| - name: CrowdSec documentation | ||
| url: https://docs.crowdsec.net | ||
| about: Canonical docs the reference files derive from. | ||
| - name: Community Discord | ||
| url: https://discord.com/invite/crowdsec | ||
| about: Questions and help with your setup. | ||
| - name: Security vulnerability | ||
| url: https://github.com/crowdsecurity/crowdsec/security/policy | ||
| about: Report privately to security@crowdsec.net — never as a public issue. |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,55 @@ | ||
| name: Coverage request | ||
| description: Ask for a new environment, bouncer, or workflow to be covered | ||
| labels: ["enhancement"] | ||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. same as for issues
Collaborator
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Same change applied — the |
||
| body: | ||
| - type: markdown | ||
| attributes: | ||
| value: | | ||
| This skill is **operational** — it deploys, configures, and debugs CrowdSec. It does | ||
| not author detection content; parsers, scenarios, and WAF rules belong in the | ||
| [CrowdSec Hub](https://hub.crowdsec.net). | ||
|
|
||
| - type: input | ||
| id: area | ||
| attributes: | ||
| label: Area | ||
| description: Which part of the skill this lands in. Free text. | ||
| placeholder: install · configure · bouncers · WAF/AppSec · operate · debug · migrate · service-api | ||
| validations: | ||
| required: true | ||
|
|
||
| - type: textarea | ||
| id: request | ||
| attributes: | ||
| label: What should the skill be able to do? | ||
| description: The task you want to hand to your agent, in the words you'd use. | ||
| placeholder: '"Deploy CrowdSec on my Synology NAS and wire the firewall bouncer."' | ||
| validations: | ||
| required: true | ||
|
|
||
| - type: textarea | ||
| id: why | ||
| attributes: | ||
| label: Why isn't it covered today? | ||
| description: What the skill does instead — wrong answer, no answer, or partial. | ||
| validations: | ||
| required: true | ||
|
|
||
| - type: input | ||
| id: docs | ||
| attributes: | ||
| label: Canonical docs | ||
| description: Upstream CrowdSec documentation for this, if it exists. | ||
| placeholder: https://docs.crowdsec.net/docs/... | ||
| validations: | ||
| required: false | ||
|
|
||
| - type: textarea | ||
| id: verify | ||
| attributes: | ||
| label: Can you test it? | ||
| description: | | ||
| Nothing ships unverified — every recipe must be run against a real environment first. | ||
| Say whether you have this environment and could verify a PR against it. | ||
| validations: | ||
| required: false | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,60 @@ | ||
| # Contributing | ||
|
|
||
| Issues and PRs are welcome. Improvements to the reference docs and coverage for new | ||
| environments are the most useful contributions. | ||
|
|
||
| ## Before you open a PR | ||
|
|
||
| Authoring conventions for this skill live in [CLAUDE.md](CLAUDE.md) — writing style, | ||
| directory layout, version gating, and the `verified:` frontmatter block. Read it before | ||
| adding or restructuring a reference doc; it is the authoritative map of where content goes. | ||
|
|
||
| The rule that matters most: | ||
|
|
||
| > **Nothing ships unverified.** Every command and expected outcome must have been run | ||
| > against a real, current CrowdSec environment and observed first-hand — not inferred, | ||
| > not recalled. If you cannot verify something, mark it `untested` or leave it out. | ||
|
|
||
| Verification is recorded per file in a `verified:` block (date, engine version, environment). | ||
| When you run a doc's commands and see them work, stamp it in the same change. | ||
|
|
||
| ## What CI checks | ||
|
|
||
| `.github/workflows/validate.yml` runs on every PR: | ||
|
|
||
| | Check | Fails the build? | | ||
| |---|---| | ||
| | `plugin.json` and `marketplace.json` versions agree | yes | | ||
| | `claude plugin validate .` | yes | | ||
| | Malformed `verified:` frontmatter | yes | | ||
| | Missing or stale (>180 days) verification records | no — informational | | ||
|
|
||
| Run the verification report locally with: | ||
|
|
||
| ```bash | ||
| python3 skills/crowdsec/scripts/check-verification.py | ||
| ``` | ||
|
|
||
| ## Scope | ||
|
|
||
| This is an **operational** skill: install, configure, operate, debug. Authoring detection | ||
| content — parsers, scenarios, WAF rules — is out of scope and belongs in the | ||
| [CrowdSec Hub](https://hub.crowdsec.net). | ||
|
|
||
| ## Testing changes | ||
|
|
||
| The local working copy is for static checks only. Run commands that change or inspect a | ||
| CrowdSec install against a dedicated test environment, never against your authoring machine. | ||
|
|
||
| ## Commits and PRs | ||
|
|
||
| - Conventional commits, one-line subject where possible (`fix(console): …`, `docs(readme): …`). | ||
| - Keep PR descriptions short — what changed and why, not a narrative. | ||
| - Update [CHANGELOG.md](CHANGELOG.md) under `[Unreleased]` in the same change. | ||
|
|
||
| ## Reporting a problem | ||
|
|
||
| Open an issue using one of the [templates](.github/ISSUE_TEMPLATE/). For anything | ||
| security-sensitive in CrowdSec itself, follow the | ||
| [CrowdSec security policy](https://github.com/crowdsecurity/crowdsec/security/policy) | ||
| rather than filing a public issue here. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yes to have a template that asks the user/agent to fill area etc. not found of the more "closed" approach with dropdown lists.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done in f1f4d19 — both dropdowns (
Area,Environment) are nowtype: inputfree text, with the options moved intoplaceholderas hints rather than a fixed list. Nothing is constrained now; an agent or a human can write whatever fits.