Skip to content

docs(plugins): give the remaining four members a developer page - #638

Draft
nisavid wants to merge 1 commit into
mainfrom
nisavid/member-readme-developer-pages-261
Draft

nisavid wants to merge 1 commit into
mainfrom
nisavid/member-readme-developer-pages-261

Conversation

@nisavid

@nisavid nisavid commented Oct 17, 2026 •

Copy link
Copy Markdown
Owner
DIFF IMPL: 5 additions, 0 deletions TEST: 38 additions, 1 deletion DOC: 357 additions, 110 deletions GEN: 6 additions, 3 deletions OTHER: 3 additions, 3 deletions FILES: 22 touched

IMPL means non-test source and configuration. TEST means automated verification. DOC means reviewer and user documentation. GEN means generated artifacts. OTHER means files outside those categories. FILES shows added, modified, and removed files as +, ~, and −.

Summary

Rolecasting, Tricritical, Artifact Customs, and Proseweaving now follow the two-page split that #544 gave Mergecraft and Versionkeeping: each README.md is the front page for a person who installs the plugin, and the material about the source tree moves to a DEVELOPING.md beside it that no release target ships. Before this change, each of the four READMEs shipped in every installed copy while describing source files that installed copies leave out, such as Rolecasting's layout tree and validation commands, Tricritical's topology.json paragraph and validator command, Artifact Customs' .claude-plugin/plugin.json projection (absent from the agent-plugins and cursor targets), and Proseweaving's adapter-boundary and validation sections; #261 has the full table. None of the four had a dead link; the mismatch was in unlinked prose.

What a reader gets

  • Each README keeps what an installed copy gives its user: the skills, how delegation or review evidence works, client support, and Rolecasting's Daybreak routing. Where a moved sentence also carried a point a user needs, the README keeps the point without the source-only path; for example, Tricritical's README still says Claude Code discovers one agent alias per persona, without naming agents/*.md. In Rolecasting's README the paragraphs that stay get a Dispatch evidence heading, and Daybreak account-home routing rises from ### to ##.
  • Each README ends with a Developing this plugin section that names its audience, says what an installed copy leaves out, and links the developer page on main by absolute URL. None of the four has a closing License and provenance section, so the developer section comes last in each, as the placement decision requires.
  • Tricritical's README and Proseweaving's README now say only that Codex does not load their Claude agent aliases. Tricritical's sentence already had that scope; it is rewritten only to drop the skills/ and agents/openai.yaml paths. Proseweaving's earlier wording, "Codex and other Agent Plugins clients", claimed more than is known: the cursor target ships agents/ and its generated manifest registers it. That sentence was not part of the moved text; it is narrowed so that the two READMEs state the same fact.
  • Each developer page (Rolecasting, Tricritical, Artifact Customs, Proseweaving) opens with its audience and a Layout tree, states which files each release target leaves out, and holds the material moved out of its README, which across the four pages covers manifest and adapter-file paths, topology, provider registration, validator and test commands, evaluation evidence, and the lock writer. Links outside the plugin root are blob/main URLs, per the 2026-10-10 decision; the build-time rewrite is #523.

Validator and contract changes

Boundary

Provenance and compatibility

  • Source revision or history: one commit, 387f19a, on main's tip fc50152. Moved paragraphs keep their wording except where the new page needs a connecting change, such as "The table above" becoming "The README's public-skill table".
  • Compatibility aliases or historical references: none. evals/proseweaving/preview-panel/panel.json pins a README digest from 925626e that already differed from the base README; scripts/behavior_eval_inventory.py reports that mismatch as an ownerless diagnostic on both revisions and selects no skill, so this change leaves the panel alone.

Validation

At 387f19a, run locally from the repository root on Python 3.13.16 in a virtual environment with the workflows' pinned idna==3.18, jsonschema==4.26.0, and PyYAML==6.0.3, with every non-install run: command of provingkit-source.yml and source-skill-disposition.yml executed in workflow order:

  • The Provingkit definition and repository exclusions pass: python scripts/validate_provingkit.py . prints "Provingkit source validation passed", python scripts/run_provingkit_tests.py . with a fresh --output-dir reports successful: true, and provingkit-source.yml's six excluded-source test ! -e checks pass.
  • Every affected member's focused tests and source validator pass: the workflow suites for Rolecasting (69), Tricritical (137), Artifact Customs (45), and Proseweaving (38) and each member's validator (Artifact Customs both with and without --source-stage), tests.test_build_release_artifacts (11), and tests.test_validate_source_skill_disposition (66) with python scripts/validate_source_skill_disposition.py .. Beyond the workflows, 114 more tests pass across tests.test_agent_plugins_standard, the three tests.plugins.test_rolecasting_* suites, tests.test_artifact_customs_behavior_eval, and tests.test_behavior_eval_corpora.
  • Supported derived locks regenerate without a diff: after the six --write-content-lock commands in .github/workflows/provingkit-source.yml, git diff --exit-code returns 0.
  • Every other non-install run: command in .github/workflows/provingkit-source.yml and .github/workflows/source-skill-disposition.yml passes at this head: git diff --check against the base, the runner's own tests (16), the Amberbridge fixture test (1), the four cutover-lineage tests, the member receipt-adapter suites (105), Versionkeeping's tests (63) and validator, Mergecraft's tests (195), its issue–PR relation and ledger suites (76), its two review-feedback discover suites (62 and 95), and its source-stage validator, and the three full-slate target builds. The dependency-install steps were not run; the virtual environment stands in for them.
  • Receipt gate: python scripts/behavior_eval_inventory.py compare --base fc50152d2d53cf9b50db4202d1c4506765d65fa4 --candidate 387f19a1c3efff1cf89b09af5385f1719a469022 reports complete with no affected skills, and check with --receipt-root release/eval-receipts reports not-required.
  • Projection: no agent-plugins, claude, or cursor payload built from this head contains DEVELOPING.md; every shipped README equals its source file; and apart from the developer-page URL, the only left-out file a shipped README names is topology.json, inside its "An installed copy leaves out" sentence.
  • The new tests fail for the right reasons: deleting a member's DEVELOPING.md makes its validator exit 1 (Rolecasting and Proseweaving with component inventory drift, Artifact Customs with plugin root file inventory drift, Tricritical with a read error naming the file); and with DEVELOPING.md removed from Tricritical's expected tree, the validator accepts a tree without the page and Tricritical's missing-page test fails.
  • cog verify accepts the commit message, and cog check fc50152..387f19a reports no errored commits.

On Python 3.15, the default uv interpreter on the machine that ran these checks, tests.test_behavior_eval_corpora reports three failures in two methods, and the prepared-release cutover test fails because it resolves sys.executable to a base interpreter without PyYAML. Both failures occur on main and on this head alike, and both pass on Python 3.13 as above.

Merge gate: the required windows-latest credential provider check is expected to fail on this PR until #627 is fixed, as it does on #626 (job) and #611 (job), the two open PRs whose checks were inspected. Of the other eleven required checks, eight are jobs of the two workflows reproduced above; the remaining three come from two workflows not run locally: Conventional commit compliance runs the Cocogitto check that cog check covers above for this PR's one commit, and the ubuntu-latest and macos-latest credential-provider jobs run Versionkeeping's credential-provider tests, which this change does not touch.

Follow-up

  • Draft #601 adds three points to the Proseweaving README's Validation section, which this PR moves to DEVELOPING.md; both PRs also edit scripts/validate_proseweaving.py and tests/test_validate_proseweaving.py in separate places. Whichever lands second carries the other's Validation text into plugins/proseweaving/DEVELOPING.md, regenerates the Proseweaving lock and Kit digest, and reruns validation and review on the combined result.
  • #612 plans changes to Rolecasting's choosing-agent-models and delegating-cross-agent-work, which share the Rolecasting content lock and Kit digest this PR regenerates; whichever lands second regenerates them again.
  • test_developer_pages_stay_in_source names all six members; Praxis joins the list when #209 lands.
  • No test compares the developer pages' "leaves out" lists with release/artifact-projection-policy-v1.json; the lists here were checked by hand against the policy and built payloads.
  • This PR rewrites release/provingkit/definition-v1.json, whose digest committed receipts under release/eval-receipts/ record. The receipt gate selects no skill for this change, and no receipt is refreshed here.
  • #545 still owns scripts/validate_plugin_runtime_roots.py, which this PR does not run or change.

Review checklist

  • The six Agent Plugin members remain independently identified, including Proseweaving.
  • Member manifests keep independent identities and versions.
  • Historical Linux or macOS inputs are not presented as current qualification.
  • This change creates no Provingkit release, tag, release-manifest instance, marketplace publication, or live installation.

🤖 Generated with Claude Code

The Rolecasting, Tricritical, Artifact Customs, and Proseweaving READMEs
ship in every installed copy, but parts of each described the source
tree: a layout tree, adapter manifest and openai.yaml paths, topology,
content-lock and provider registration files, validator and test
commands. No release target ships the topology, content-lock, or
provider registration files, the validators, or the tests, and each
ships at most one of the two adapter files.

Make each README the front page for people using the plugin, and move
that material, mostly verbatim, into a DEVELOPING.md beside it, as
Mergecraft and Versionkeeping already do. Where a moved sentence also
carried a user-facing point, the README keeps that point without the
source-only path; Rolecasting's retained dispatch-evidence paragraphs
get their own heading. Each README now ends with a Developing this
plugin section that points at the developer page by URL. Each developer
page opens with the source layout, names its validator, tests,
evaluation evidence, content identity, and lock regeneration command,
and states which files every release target leaves out.

Proseweaving's README now says only that Codex does not load its
Claude agent alias, as Tricritical's already did. Its earlier "Codex
and other Agent Plugins clients" wording claimed more than is known:
the Cursor target ships agents/ and registers it in its generated
manifest.

Each member validator adds the page to its root inventory, and a unit
test rejects a missing page. Rolecasting, Proseweaving, and Artifact
Customs lock it with their README, so the Kit definition rebinds those
three regenerated locks. Tricritical's lock has never covered its
README, so the page stays outside that lock and its binding is
unchanged. The builder test now expects all six developer pages.
AGENTS.md drops the clause for members without a developer page, says
the page stays in the source, and adds Proseweaving's README roster to
what the lock writers regenerate.

Refs #261

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Oct 17, 2026

Copy link
Copy Markdown

Important

Draft PR not reviewed

Draft PRs are not automatically reviewed by default.

  • Trigger a manual review

To automatically review draft PRs, update your CodeRabbit configuration:

reviews:
  auto_review:
    drafts: true
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Comment @coderabbitai help to get the list of available commands.

@nisavid

nisavid commented Oct 23, 2026

Copy link
Copy Markdown
Owner Author

@coderabbitai configuration

@coderabbitai

coderabbitai Bot commented Oct 23, 2026

Copy link
Copy Markdown

Configuration used: Auto · no configuration file from this repository applied; Layers: Organization UI

CodeRabbit configuration
# Source: Organization UI (base)
language: en-US
# Source: Organization UI (base)
tone_instructions: ''
# Source: Organization UI (base)
early_access: true
# Source: Organization UI (base)
enable_free_tier: true
# Source: Organization UI (base)
inheritance: false
reviews:
  # Source: Organization UI (base)
  profile: assertive
  # Source: Organization UI (base)
  request_changes_workflow: true
  # Source: Organization UI (base)
  allow_author_approval: true
  # Source: Organization UI (base)
  high_level_summary: true
  # Source: Organization UI (base)
  high_level_summary_instructions: ''
  # Source: Organization UI (base)
  high_level_summary_placeholder: '@coderabbitai summary'
  # Source: Organization UI (base)
  high_level_summary_in_walkthrough: false
  # Source: Organization UI (base)
  auto_title_placeholder: '@coderabbitai'
  # Source: Organization UI (base)
  auto_title_instructions: ''
  # Source: Organization UI (base)
  review_status: true
  # Source: defaults
  review_info: true
  # Source: Organization UI (base)
  review_details: false
  # Source: Organization UI (base)
  review_progress: true
  # Source: Organization UI (base)
  commit_status: true
  # Source: Organization UI (base)
  fail_commit_status: false
  # Source: Organization UI (base)
  collapse_walkthrough: true
  # Source: Organization UI (base)
  changed_files_summary: true
  # Source: Organization UI (base)
  sequence_diagrams: true
  # Source: Organization UI (base)
  estimate_code_review_effort: true
  # Source: Organization UI (base)
  assess_linked_issues: true
  # Source: Organization UI (base)
  related_issues: true
  # Source: Organization UI (base)
  related_prs: true
  # Source: Organization UI (base)
  suggested_labels: true
  # Source: defaults
  labeling_instructions: []
  # Source: defaults
  mutually_exclusive_groups: {}
  # Source: Organization UI (base)
  auto_apply_labels: true
  # Source: Organization UI (base)
  suggested_reviewers: true
  # Source: Organization UI (base)
  auto_assign_reviewers: true
  # Source: defaults
  suggested_reviewers_instructions: []
  # Source: Organization UI (base)
  in_progress_fortune: true
  # Source: Organization UI (base)
  poem: true
  # Source: Organization UI (base)
  enable_prompt_for_ai_agents: true
  # Source: defaults
  path_filters: []
  # Source: defaults
  path_instructions: []
  # Source: Organization UI (base)
  abort_on_close: true
  # Source: Organization UI (base)
  disable_cache: false
  slop_detection:
    # Source: Organization UI (base)
    enabled: true
    # Source: Organization UI (base)
    include_all_authors: false
  auto_review:
    # Source: Organization UI (base)
    enabled: true
    # Source: Organization UI (base)
    description_keyword: ''
    # Source: Organization UI (base)
    auto_incremental_review: true
    # Source: Organization UI (base)
    auto_pause_after_reviewed_commits: 5
    # Source: defaults
    ignore_title_keywords: []
    # Source: defaults
    labels: []
    # Source: Organization UI (base)
    drafts: false
    # Source: defaults
    base_branches: []
    # Source: defaults
    ignore_usernames: []
  finishing_touches:
    docstrings:
      # Source: Organization UI (base)
      enabled: false
    unit_tests:
      # Source: Organization UI (base)
      enabled: false
    simplify:
      # Source: Organization UI (base)
      enabled: false
    autofix:
      # Source: Organization UI (base)
      enabled: true
    fix_ci:
      # Source: Organization UI (base)
      enabled: true
    resolve_merge_conflict:
      # Source: Organization UI (base)
      enabled: true
    # Source: defaults
    custom: []
  pre_merge_checks:
    # Source: Organization UI (base)
    override_requested_reviewers_only: false
    docstrings:
      # Source: Organization UI (base)
      mode: warning
      # Source: Organization UI (base)
      threshold: 80
    title:
      # Source: Organization UI (base)
      mode: warning
      # Source: Organization UI (base)
      requirements: ''
    description:
      # Source: Organization UI (base)
      mode: warning
    issue_assessment:
      # Source: Organization UI (base)
      mode: warning
    # Source: defaults
    custom_checks: []
  # Source: defaults
  post_merge_actions: []
  tools:
    ast-grep:
      # Source: Organization UI (base)
      enabled: true
      # Source: defaults
      rule_dirs: []
      # Source: defaults
      util_dirs: []
      # Source: Organization UI (base)
      essential_rules: true
      # Source: defaults
      packages: []
    shellcheck:
      # Source: Organization UI (base)
      enabled: true
    ruff:
      # Source: Organization UI (base)
      enabled: true
    markdownlint:
      # Source: Organization UI (base)
      enabled: true
    github-checks:
      # Source: Organization UI (base)
      enabled: true
    languagetool:
      # Source: Organization UI (base)
      enabled: true
      # Source: defaults
      enabled_rules: []
      # Source: defaults
      disabled_rules: []
      # Source: defaults
      enabled_categories: []
      # Source: defaults
      disabled_categories: []
      # Source: Organization UI (base)
      enabled_only: false
      # Source: Organization UI (base)
      level: default
    biome:
      # Source: Organization UI (base)
      enabled: true
    hadolint:
      # Source: Organization UI (base)
      enabled: true
    swiftlint:
      # Source: Organization UI (base)
      enabled: true
    phpstan:
      # Source: Organization UI (base)
      enabled: true
      # Source: Organization UI (base)
      level: default
    phpmd:
      # Source: Organization UI (base)
      enabled: true
    phpcs:
      # Source: Organization UI (base)
      enabled: true
    golangci-lint:
      # Source: Organization UI (base)
      enabled: true
    yamllint:
      # Source: Organization UI (base)
      enabled: true
    gitleaks:
      # Source: Organization UI (base)
      enabled: true
    trufflehog:
      # Source: Organization UI (base)
      enabled: true
    checkov:
      # Source: Organization UI (base)
      enabled: true
    tflint:
      # Source: Organization UI (base)
      enabled: true
    detekt:
      # Source: Organization UI (base)
      enabled: true
    eslint:
      # Source: Organization UI (base)
      enabled: true
      e18e:
        # Source: Organization UI (base)
        enabled: true
    flake8:
      # Source: Organization UI (base)
      enabled: true
    fbinfer:
      # Source: Organization UI (base)
      enabled: true
      # Source: Organization UI (base)
      enable_java: false
    fortitudeLint:
      # Source: Organization UI (base)
      enabled: true
    rubocop:
      # Source: Organization UI (base)
      enabled: true
    buf:
      # Source: Organization UI (base)
      enabled: true
    regal:
      # Source: Organization UI (base)
      enabled: true
    actionlint:
      # Source: Organization UI (base)
      enabled: true
    zizmor:
      # Source: Organization UI (base)
      enabled: true
    pmd:
      # Source: Organization UI (base)
      enabled: true
    clang:
      # Source: Organization UI (base)
      enabled: true
    cppcheck:
      # Source: Organization UI (base)
      enabled: true
    vale:
      # Source: Organization UI (base)
      enabled: true
    verilator:
      # Source: Organization UI (base)
      enabled: true
    opengrep:
      # Source: Organization UI (base)
      enabled: true
    semgrep:
      # Source: Organization UI (base)
      enabled: true
    circleci:
      # Source: Organization UI (base)
      enabled: true
    clippy:
      # Source: Organization UI (base)
      enabled: true
    sqlfluff:
      # Source: Organization UI (base)
      enabled: true
    squawk:
      # Source: Organization UI (base)
      enabled: true
    trivy:
      # Source: Organization UI (base)
      enabled: true
    prismaLint:
      # Source: Organization UI (base)
      enabled: true
    pylint:
      # Source: Organization UI (base)
      enabled: true
    oxc:
      # Source: Organization UI (base)
      enabled: true
    shopifyThemeCheck:
      # Source: Organization UI (base)
      enabled: true
    luacheck:
      # Source: Organization UI (base)
      enabled: true
    brakeman:
      # Source: Organization UI (base)
      enabled: true
    dotenvLint:
      # Source: Organization UI (base)
      enabled: true
    htmlhint:
      # Source: Organization UI (base)
      enabled: true
    stylelint:
      # Source: Organization UI (base)
      enabled: true
    checkmake:
      # Source: Organization UI (base)
      enabled: true
    osvScanner:
      # Source: Organization UI (base)
      enabled: true
    oasdiff:
      # Source: Organization UI (base)
      enabled: true
    reactDoctor:
      # Source: Organization UI (base)
      enabled: true
    presidio:
      # Source: Organization UI (base)
      enabled: true
    blinter:
      # Source: Organization UI (base)
      enabled: true
    smartyLint:
      # Source: Organization UI (base)
      enabled: true
    emberTemplateLint:
      # Source: Organization UI (base)
      enabled: true
    skillspector:
      # Source: Organization UI (base)
      enabled: true
    psscriptanalyzer:
      # Source: Organization UI (base)
      enabled: true
chat:
  # Source: Organization UI (base)
  art: true
  # Source: Organization UI (base)
  allow_non_org_members: true
  # Source: Organization UI (base)
  auto_reply: true
  integrations:
    jira:
      # Source: Organization UI (base)
      usage: auto
      # Source: Organization UI (base)
      issue_template: ''
    linear:
      # Source: Organization UI (base)
      usage: auto
knowledge_base:
  # Source: Organization UI (base)
  opt_out: false
  web_search:
    # Source: Organization UI (base)
    enabled: true
  code_guidelines:
    # Source: Organization UI (base)
    enabled: true
    # Source: defaults
    filePatterns: []
  learnings:
    # Source: Organization UI (base)
    scope: auto
    # Source: Organization UI (base)
    approval_delay: 0
  issues:
    # Source: Organization UI (base)
    scope: auto
  jira:
    # Source: Organization UI (base)
    usage: auto
    # Source: defaults
    project_keys: []
    # Source: defaults
    excluded_project_keys: []
  linear:
    # Source: Organization UI (base)
    usage: auto
    # Source: defaults
    team_keys: []
  pull_requests:
    # Source: Organization UI (base)
    scope: auto
  mcp:
    # Source: Organization UI (base)
    usage: auto
    # Source: defaults
    disabled_servers: []
  # Source: Organization UI (base)
  automatic_linking_mode: auto
  # Source: Organization UI (base)
  automatic_repository_linking: false
  # Source: Organization UI (base)
  linked_repositories:
    - repository: nisavid/ci
      instructions: ''
code_generation:
  docstrings:
    # Source: Organization UI (base)
    language: en-US
    # Source: defaults
    path_instructions: []
  unit_tests:
    # Source: defaults
    path_instructions: []
issue_enrichment:
  auto_enrich:
    # Source: Organization UI (base)
    enabled: true
  planning:
    # Source: Organization UI (base)
    enabled: true
    auto_planning:
      # Source: Organization UI (base)
      enabled: true
      # Source: defaults
      labels: []
  labeling:
    # Source: defaults
    labeling_instructions: []
    # Source: Organization UI (base)
    auto_apply_labels: true

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant