diff --git a/.claude/specs/contributing-guide/design.md b/.claude/specs/contributing-guide/design.md index bcec6bd..6cf36f8 100644 --- a/.claude/specs/contributing-guide/design.md +++ b/.claude/specs/contributing-guide/design.md @@ -66,9 +66,9 @@ Four files under `.github/ISSUE_TEMPLATE/`. Fields are in Data Models. | File | `name` | Issue_Type | Labels | Requirements | |---|---|---|---|---| -| `misbehaving-skill-or-agent.yml` | Misbehaving skill or agent | Bug | `triage` | 2.1, 2.2, 2.3 | -| `proposal.yml` | Proposal: a new or changed skill, agent or rule | Feature | `triage` | 2.1, 2.2, 2.3 | -| `eval-case.yml` | New eval case | Task | `triage` | 2.1, 2.2, 2.3 | +| `misbehaving-skill-or-agent.yml` | Report a misbehaving skill or agent | Bug | `triage` | 2.1, 2.2, 2.3 | +| `proposal.yml` | Propose a new or changed skill, agent or rule | Feature | `triage` | 2.1, 2.2, 2.3 | +| `eval-case.yml` | Propose an eval case | Task | `triage` | 2.1, 2.2, 2.3 | | `config.yml` | blank issues off; links for a question, an idea and a vulnerability | | | 2.4, 5.2 | ### Community_Files @@ -154,7 +154,7 @@ Constraints: a Triaged issue carries exactly one Priority_Label, the Area_Labels Every form opens with a one-line Markdown pointer to the Guide's Issues section, then the preflight checkboxes, each required. Every field with a known answer set is a dropdown or checkboxes, and every field triage reads is required, so a submission is typed and complete (Requirement 2.3). Field ids are the YAML `id` values. -Misbehaving skill or agent (`type: Bug`): +Report a misbehaving skill or agent (`type: Bug`): | id | Kind | Required | Content | |---|---|---|---| @@ -176,7 +176,7 @@ Proposal (`type: Feature`): | `behaviour` | textarea | yes | The behaviour or wording you propose | | `case` | textarea | yes | The case that motivates it: what went wrong, or took too long, without it | -New eval case (`type: Task`): +Propose an eval case (`type: Task`): | id | Kind | Required | Content | |---|---|---|---| diff --git a/.claude/specs/contributing-guide/tasks.md b/.claude/specs/contributing-guide/tasks.md index fe609f2..bbd53e3 100644 --- a/.claude/specs/contributing-guide/tasks.md +++ b/.claude/specs/contributing-guide/tasks.md @@ -47,13 +47,13 @@ The labels and the two pull request templates come first, because the issues, th - [x] 4. Issue forms and the chooser - [x] 4.1 `.github/ISSUE_TEMPLATE/misbehaving-skill-or-agent.yml` - - `name: Misbehaving skill or agent`, a one-line `description`, `labels: ["triage"]`, `type: Bug`, and a `body` in the order of the design's table: a `markdown` pointer to the Guide's Issues section; `preflight` checkboxes, searched the existing issues and on the latest plugin version, each required; `component` dropdown with the twelve options the design lists; `version` input, the version as `claude plugin list` shows it; `prompt`, `happened` and `expected` textareas; `reproduces` dropdown. Every field required. Prove it by parsing with `ruby -ryaml -e 'p YAML.load_file(ARGV[0])'` (the machine has no PyYAML; ruby is used for the check only, nothing is added to the repository): the top-level keys, unique ids, `required: true` on every field, the dropdown options as listed; then `make validate` + - `name: Report a misbehaving skill or agent`, a one-line `description`, `labels: ["triage"]`, `type: Bug`, and a `body` in the order of the design's table: a `markdown` pointer to the Guide's Issues section; `preflight` checkboxes, searched the existing issues and on the latest plugin version, each required; `component` dropdown with the twelve options the design lists; `version` input, the version as `claude plugin list` shows it; `prompt`, `happened` and `expected` textareas; `reproduces` dropdown. Every field required. Prove it by parsing with `ruby -ryaml -e 'p YAML.load_file(ARGV[0])'` (the machine has no PyYAML; ruby is used for the check only, nothing is added to the repository): the top-level keys, unique ids, `required: true` on every field, the dropdown options as listed; then `make validate` - _Requirements: 2.1, 2.2, 2.3, 3.6_ - [x] 4.2 `.github/ISSUE_TEMPLATE/proposal.yml` - - `name: Proposal: a new or changed skill, agent or rule`, `labels: ["triage"]`, `type: Feature`; body: the Guide pointer; `preflight` checkboxes, searched the existing issues and looked in Discussions under Ideas, each required; `kind` dropdown with the six options; `component` dropdown with the same list as 4.1, not required, for a change; `behaviour` and `case` textareas, required. Same proof as 4.1 + - `name: Propose a new or changed skill, agent or rule`, `labels: ["triage"]`, `type: Feature`; body: the Guide pointer; `preflight` checkboxes, searched the existing issues and looked in Discussions under Ideas, each required; `kind` dropdown with the six options; `component` dropdown with the same list as 4.1, not required, for a change; `behaviour` and `case` textareas, required. Same proof as 4.1 - _Requirements: 2.1, 2.2, 2.3, 3.6_ - [x] 4.3 `.github/ISSUE_TEMPLATE/eval-case.yml` - - `name: New eval case`, `labels: ["triage"]`, `type: Task`; body: the Guide pointer; `preflight` checkboxes, searched the existing issues and read `evals/README.md`, each required; `component` dropdown as in 4.1, required; `behaviour` and `grading` textareas, required; `prompt` textarea, optional. Same proof as 4.1 + - `name: Propose an eval case`, `labels: ["triage"]`, `type: Task`; body: the Guide pointer; `preflight` checkboxes, searched the existing issues and read `evals/README.md`, each required; `component` dropdown as in 4.1, required; `behaviour` and `grading` textareas, required; `prompt` textarea, optional. Same proof as 4.1 - _Requirements: 2.1, 2.2, 2.3, 3.6_ - [x] 4.4 `.github/ISSUE_TEMPLATE/config.yml` - `blank_issues_enabled: false` and three `contact_links`, each with `name`, `url` and `about`: a question to `https://github.com/freethinkingit/dev_tools/discussions/categories/q-a`, an idea to `https://github.com/freethinkingit/dev_tools/discussions/categories/ideas`, a vulnerability to `https://github.com/freethinkingit/dev_tools/security/policy`. Prove it: the ruby parse as in 4.1, and `gh api graphql -f query='{ repository(owner:"freethinkingit", name:"dev_tools") { discussionCategories(first:20) { nodes { slug } } } }'` listing `q-a` and `ideas`, the categories Discussions already has diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index 283cc49..d787c7d 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -54,17 +54,17 @@ ticket. The [pull request template](pull_request_template.md) is the one place that says how the issue is linked and when to write `Closes #`. A new skill, agent, rule or hook is also added to the `component` dropdown of -the "Misbehaving skill or agent", "Proposal: a new or changed skill, agent or -rule" and "New eval case" forms. +the "Report a misbehaving skill or agent", "Propose a new or changed skill, +agent or rule" and "Propose an eval case" forms. ## Issues New issues start from one of three forms: -- **Misbehaving skill or agent**, for something the plugin did wrong. -- **Proposal: a new or changed skill, agent or rule**, for something it should +- **Report a misbehaving skill or agent**, for something the plugin did wrong. +- **Propose a new or changed skill, agent or rule**, for something it should do. -- **New eval case**, for a behaviour an eval should guard. +- **Propose an eval case**, for a behaviour an eval should guard. Submitting a form labels the issue `triage` and sets its Issue_Type: `Bug`, `Feature` and `Task` respectively. Blank issues are off. The new-issue page diff --git a/.github/ISSUE_TEMPLATE/eval-case.yml b/.github/ISSUE_TEMPLATE/eval-case.yml index 52a65d4..6298822 100644 --- a/.github/ISSUE_TEMPLATE/eval-case.yml +++ b/.github/ISSUE_TEMPLATE/eval-case.yml @@ -1,4 +1,4 @@ -name: New eval case +name: Propose an eval case description: Propose an eval case that guards a behaviour of a skill, agent, rule or hook. labels: ["triage"] type: Task diff --git a/.github/ISSUE_TEMPLATE/misbehaving-skill-or-agent.yml b/.github/ISSUE_TEMPLATE/misbehaving-skill-or-agent.yml index 191da1f..c70609e 100644 --- a/.github/ISSUE_TEMPLATE/misbehaving-skill-or-agent.yml +++ b/.github/ISSUE_TEMPLATE/misbehaving-skill-or-agent.yml @@ -1,4 +1,4 @@ -name: Misbehaving skill or agent +name: Report a misbehaving skill or agent description: A skill, agent, rule or hook of the plugin did not do what it says it does. labels: ["triage"] type: Bug diff --git a/.github/ISSUE_TEMPLATE/proposal.yml b/.github/ISSUE_TEMPLATE/proposal.yml index 1bde0b0..d017aed 100644 --- a/.github/ISSUE_TEMPLATE/proposal.yml +++ b/.github/ISSUE_TEMPLATE/proposal.yml @@ -1,4 +1,4 @@ -name: "Proposal: a new or changed skill, agent or rule" +name: Propose a new or changed skill, agent or rule description: Propose a new skill, agent or rule, or a change to one that exists. labels: ["triage"] type: Feature