@datafog/fogclaw 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (97) hide show
  1. package/.github/workflows/harness-docs.yml +30 -0
  2. package/AGENTS.md +28 -0
  3. package/LICENSE +21 -0
  4. package/README.md +208 -0
  5. package/dist/config.d.ts +4 -0
  6. package/dist/config.d.ts.map +1 -0
  7. package/dist/config.js +30 -0
  8. package/dist/config.js.map +1 -0
  9. package/dist/engines/gliner.d.ts +14 -0
  10. package/dist/engines/gliner.d.ts.map +1 -0
  11. package/dist/engines/gliner.js +75 -0
  12. package/dist/engines/gliner.js.map +1 -0
  13. package/dist/engines/regex.d.ts +5 -0
  14. package/dist/engines/regex.d.ts.map +1 -0
  15. package/dist/engines/regex.js +54 -0
  16. package/dist/engines/regex.js.map +1 -0
  17. package/dist/index.d.ts +19 -0
  18. package/dist/index.d.ts.map +1 -0
  19. package/dist/index.js +157 -0
  20. package/dist/index.js.map +1 -0
  21. package/dist/redactor.d.ts +3 -0
  22. package/dist/redactor.d.ts.map +1 -0
  23. package/dist/redactor.js +37 -0
  24. package/dist/redactor.js.map +1 -0
  25. package/dist/scanner.d.ts +11 -0
  26. package/dist/scanner.d.ts.map +1 -0
  27. package/dist/scanner.js +77 -0
  28. package/dist/scanner.js.map +1 -0
  29. package/dist/types.d.ts +31 -0
  30. package/dist/types.d.ts.map +1 -0
  31. package/dist/types.js +18 -0
  32. package/dist/types.js.map +1 -0
  33. package/docs/DATA.md +28 -0
  34. package/docs/DESIGN.md +17 -0
  35. package/docs/DOMAIN_DOCS.md +30 -0
  36. package/docs/FRONTEND.md +24 -0
  37. package/docs/OBSERVABILITY.md +25 -0
  38. package/docs/PLANS.md +171 -0
  39. package/docs/PRODUCT_SENSE.md +20 -0
  40. package/docs/RELIABILITY.md +60 -0
  41. package/docs/SECURITY.md +50 -0
  42. package/docs/design-docs/core-beliefs.md +17 -0
  43. package/docs/design-docs/index.md +8 -0
  44. package/docs/generated/README.md +36 -0
  45. package/docs/generated/memory.md +1 -0
  46. package/docs/plans/2026-02-16-fogclaw-design.md +172 -0
  47. package/docs/plans/2026-02-16-fogclaw-implementation.md +1606 -0
  48. package/docs/plans/README.md +15 -0
  49. package/docs/plans/active/2026-02-16-feat-openclaw-official-submission-plan.md +386 -0
  50. package/docs/plans/active/2026-02-17-feat-release-fogclaw-via-datafog-package-plan.md +318 -0
  51. package/docs/plans/active/2026-02-17-feat-submit-fogclaw-to-openclaw-plan.md +244 -0
  52. package/docs/plans/tech-debt-tracker.md +42 -0
  53. package/docs/plugins/fogclaw.md +95 -0
  54. package/docs/runbooks/address-review-findings.md +30 -0
  55. package/docs/runbooks/ci-failures.md +46 -0
  56. package/docs/runbooks/code-review.md +34 -0
  57. package/docs/runbooks/merge-change.md +28 -0
  58. package/docs/runbooks/pull-request.md +45 -0
  59. package/docs/runbooks/record-evidence.md +43 -0
  60. package/docs/runbooks/reproduce-bug.md +42 -0
  61. package/docs/runbooks/respond-to-feedback.md +42 -0
  62. package/docs/runbooks/review-findings.md +31 -0
  63. package/docs/runbooks/submit-openclaw-plugin.md +68 -0
  64. package/docs/runbooks/update-agents-md.md +59 -0
  65. package/docs/runbooks/update-domain-docs.md +42 -0
  66. package/docs/runbooks/validate-current-state.md +41 -0
  67. package/docs/runbooks/verify-release.md +69 -0
  68. package/docs/specs/2026-02-16-feat-openclaw-official-submission-spec.md +115 -0
  69. package/docs/specs/2026-02-17-feat-submit-fogclaw-to-openclaw.md +125 -0
  70. package/docs/specs/README.md +5 -0
  71. package/docs/specs/index.md +8 -0
  72. package/docs/spikes/README.md +8 -0
  73. package/fogclaw.config.example.json +15 -0
  74. package/openclaw.plugin.json +45 -0
  75. package/package.json +37 -0
  76. package/scripts/ci/he-docs-config.json +123 -0
  77. package/scripts/ci/he-docs-drift.sh +112 -0
  78. package/scripts/ci/he-docs-lint.sh +234 -0
  79. package/scripts/ci/he-plans-lint.sh +354 -0
  80. package/scripts/ci/he-runbooks-lint.sh +445 -0
  81. package/scripts/ci/he-specs-lint.sh +258 -0
  82. package/scripts/ci/he-spikes-lint.sh +249 -0
  83. package/scripts/runbooks/select-runbooks.sh +154 -0
  84. package/src/config.ts +46 -0
  85. package/src/engines/gliner.ts +88 -0
  86. package/src/engines/regex.ts +71 -0
  87. package/src/index.ts +223 -0
  88. package/src/redactor.ts +51 -0
  89. package/src/scanner.ts +90 -0
  90. package/src/types.ts +52 -0
  91. package/tests/config.test.ts +104 -0
  92. package/tests/gliner.test.ts +184 -0
  93. package/tests/plugin-smoke.test.ts +114 -0
  94. package/tests/redactor.test.ts +320 -0
  95. package/tests/regex.test.ts +345 -0
  96. package/tests/scanner.test.ts +199 -0
  97. package/tsconfig.json +20 -0
@@ -0,0 +1,95 @@
1
+ ---
2
+ summary: "FogClaw plugin for agent message redaction and PII scanning"
3
+ read_when:
4
+ - You want optional built-in privacy tooling in OpenClaw
5
+ - You need configurable redaction, blocking, or warning for sensitive content
6
+ - You are setting up a custom entity scanner in your agent workflow
7
+ title: "FogClaw Plugin"
8
+ ---
9
+
10
+ # FogClaw (plugin)
11
+
12
+ FogClaw is an OpenClaw plugin that protects agent workflows by detecting and handling sensitive data before or during tool execution.
13
+
14
+ It provides both proactive guardrail behavior (via the `before_agent_start` hook) and explicit tools:
15
+
16
+ - `fogclaw_scan`: scans text for PII and custom entities.
17
+ - `fogclaw_redact`: scans and redacts sensitive matches.
18
+
19
+ ## Install
20
+
21
+ ```bash
22
+ openclaw plugins install @datafog/fogclaw
23
+ ```
24
+
25
+ After install, restart the Gateway and enable/configure `plugins.entries.fogclaw`.
26
+
27
+ ## Plugin entry
28
+
29
+ The package exports the plugin manifest and entry as:
30
+
31
+ - plugin id: `fogclaw`
32
+ - package name: `@datafog/fogclaw`
33
+ - extension entry: `./dist/index.js`
34
+
35
+ ## What it scans
36
+
37
+ - Structured PII via regex (for example emails, phone numbers, SSNs, credit cards)
38
+ - Custom named-entity labels via GLiNER zero-shot detection
39
+
40
+ You can also define custom entity labels and per-entity actions in config (for example `redact`, `block`, or `warn`).
41
+
42
+ ## Behavior at a glance
43
+
44
+ - Runs as a plugin loaded by the standard OpenClaw plugin pipeline.
45
+ - Supports local-only and hosted environments; works from OpenClaw extensions path.
46
+ - Fails safely to regex-only mode if optional GLiNER model initialization is unavailable.
47
+
48
+ ## Configuration reference
49
+
50
+ Set plugin config under `plugins.entries.fogclaw.config`:
51
+
52
+ ```json5
53
+ {
54
+ plugins: {
55
+ entries: {
56
+ fogclaw: {
57
+ enabled: true,
58
+ config: {
59
+ enabled: true,
60
+ guardrail_mode: "redact",
61
+ redactStrategy: "token",
62
+ confidence_threshold: 0.5,
63
+ custom_entities: ["project codename", "competitor name"],
64
+ entityActions: {
65
+ EMAIL: "redact",
66
+ PHONE: "redact",
67
+ SSN: "block",
68
+ CREDIT_CARD: "block",
69
+ PERSON: "warn",
70
+ },
71
+ },
72
+ },
73
+ },
74
+ },
75
+ }
76
+ ```
77
+
78
+ ## Use in the OpenClaw tool policy
79
+
80
+ When enabled, the plugin registers the `before_agent_start` hook and two tools:
81
+
82
+ - `fogclaw_scan`
83
+ - `fogclaw_redact`
84
+
85
+ These tools accept a required `text` field and optional strategy / custom label overrides.
86
+
87
+ For install and reproducible package metadata evidence, use the package's `openclaw.extensions` field:
88
+
89
+ ```json
90
+ {
91
+ "openclaw": {
92
+ "extensions": ["./dist/index.js"]
93
+ }
94
+ }
95
+ ```
@@ -0,0 +1,30 @@
1
+ ---
2
+ title: "Address Review Findings"
3
+ use_when: "You have review findings in an active plan and need a consistent process to fix, re-run review, and document what changed."
4
+ called_from:
5
+ - he-review
6
+ - he-implement
7
+ ---
8
+
9
+ # Address Review Findings
10
+
11
+ This runbook is repo-specific and **additive only**. It must not waive or override any gates enforced by skills.
12
+
13
+ ## Workflow
14
+
15
+ 1. Triage findings by priority.
16
+ 2. For each `critical`/`high`, do one of:
17
+ - fix it (preferred), or
18
+ - escalate per `he-review` SKILL.md § Escalation if behavior is ambiguous or risk is unclear.
19
+ 3. For `medium`/`low`, either:
20
+ - fix it, or
21
+ - accept it explicitly in the plan with rationale and follow-up link.
22
+ 4. Update evidence:
23
+ - rerun the most relevant tests
24
+ - update `Artifacts and Notes` with new proof
25
+ 5. Update `Progress`, `Decision Log`, and `Revision Notes` in the plan to reflect what changed and why.
26
+ 6. Re-run `he-review` if the change materially altered behavior or implementation.
27
+
28
+ ## Re-entry Rules
29
+
30
+ See `he-review` SKILL.md § Re-entry Rules for the canonical gates (design-level issues and material behavior changes).
@@ -0,0 +1,46 @@
1
+ ---
2
+ title: "Remediate CI Failures"
3
+ use_when: "A verify/release gate fails due to build/test/lint failures locally or in CI; you need a consistent triage and stop/escalate policy."
4
+ called_from:
5
+ - he-verify-release
6
+ - he-implement
7
+ ---
8
+
9
+ # Remediate CI Failures
10
+
11
+ This runbook is repo-specific and **additive only**. It must not waive or override any gates enforced by skills.
12
+
13
+ Treat CI failures as signal. The goal is not to make CI green by any means; it is to restore correctness with minimal, root-cause fixes.
14
+
15
+ ## Triage Order
16
+
17
+ 1. Confirm you are testing the right thing (branch, commit, env).
18
+ 2. Identify failure class:
19
+ - deterministic test failure
20
+ - flaky test
21
+ - lint/format/typecheck
22
+ - build/tooling regression
23
+ 3. Reduce to the smallest reproducer command.
24
+
25
+ ## Deterministic Failures
26
+
27
+ - Add or adjust a real unit/e2e test when the failure indicates a missing assertion.
28
+ - Fix the underlying behavior; avoid "just loosen the test" unless the test is truly wrong.
29
+
30
+ ## Flaky Failures
31
+
32
+ - If you can reproduce locally, fix like deterministic.
33
+ - If you cannot reproduce:
34
+ - mark as `judgment required` and escalate with evidence per the calling skill's § Escalation
35
+ - do not disable tests silently
36
+
37
+ ## Tooling Failures
38
+
39
+ - Keep changes minimal and reversible.
40
+ - Prefer pinning/fixing the tool invocation over broad refactors.
41
+
42
+ ## Required Evidence
43
+
44
+ - Command used to reproduce
45
+ - Short failure output excerpt
46
+ - Command/output showing the fix
@@ -0,0 +1,34 @@
1
+ ---
2
+ title: "Code Review"
3
+ use_when: "Running he-review to perform structured review fanout, write Review Findings into the active plan, and decide whether the work can proceed to verify/release."
4
+ called_from:
5
+ - he-review
6
+ ---
7
+
8
+ # Code Review
9
+
10
+ This runbook is repo-specific and **additive only**. It must not waive or override any gates enforced by skills.
11
+
12
+ The skill `he-review` enforces stable gates (fanout, findings format, and priority blocking). This document carries the details that change per project. Inputs: active plan (`docs/plans/active/<slug>-plan.md` with `## Review Findings`) and current branch diff/test evidence.
13
+
14
+ ## Output
15
+
16
+ Populate `## Review Findings` with:
17
+
18
+ - a prioritized list of findings (see `docs/runbooks/review-findings.md`)
19
+ - accepted medium/low items (explicitly called out)
20
+ - any required re-entry decision (`he-implement` vs `he-plan`)
21
+
22
+ ## What Review Must Cover (Customize Per Repo)
23
+
24
+ Keep this list short and concrete:
25
+
26
+ - correctness and edge cases in the changed area
27
+ - tests: coverage of new behavior and regression prevention
28
+ - user-visible behavior (if applicable) with evidence
29
+ - security/data boundaries (if applicable)
30
+ - performance or reliability impact (if applicable)
31
+
32
+ ## Escalation
33
+
34
+ If review requires judgment (risk unclear, expected behavior ambiguous, flaky failures), stop and escalate per `he-review` SKILL.md § Escalation.
@@ -0,0 +1,28 @@
1
+ ---
2
+ title: "Merge Change"
3
+ use_when: "You have a GO decision and need the minimum merge gate (checks/approvals/evidence) before merging to the main branch."
4
+ called_from:
5
+ - he-verify-release
6
+ ---
7
+
8
+ # Merge Change
9
+
10
+ This runbook is repo-specific and **additive only**. It must not waive or override any gates enforced by skills.
11
+
12
+ This runbook captures the repo-specific merge gate. Keep it short and make it objective where possible.
13
+
14
+ ## Preconditions
15
+
16
+ See `he-github` SKILL.md § Merge for the canonical merge gate. Add repo-specific preconditions below.
17
+
18
+ ## Merge Checklist (Customize Per Repo)
19
+
20
+ - Required approvals obtained
21
+ - Required checks passing
22
+ - Versioning/release notes updated (if applicable)
23
+ - Post-merge verification steps queued (see `docs/runbooks/verify-release.md`)
24
+
25
+ ## Post-Merge
26
+
27
+ - Run the post-release checks documented in the plan
28
+ - If any regression is found, open a follow-up and record it in learnings
@@ -0,0 +1,45 @@
1
+ ---
2
+ title: "Pull Request"
3
+ use_when: "You need to open or update a PR that links the initiative plan and evidence, and you want a consistent PR hygiene/checks workflow."
4
+ called_from:
5
+ - he-github
6
+ - he-implement
7
+ - he-review
8
+ ---
9
+
10
+ # Pull Request
11
+
12
+ This runbook is repo-specific and **additive only**. It must not waive or override any gates enforced by skills.
13
+
14
+ This runbook describes repo-specific PR conventions (title/body conventions, labels, reviewers, and required checks).
15
+
16
+ ## Preflight
17
+
18
+ - `git status --short --branch`
19
+ - `git diff`
20
+ - `gh auth status`
21
+
22
+ ## Create Or Update PR (Customize Per Repo)
23
+
24
+ Recommended `gh` flow:
25
+
26
+ - Push:
27
+ - `git push -u origin HEAD`
28
+ - Create:
29
+ - `gh pr create --fill`
30
+ - Update:
31
+ - `gh pr edit --body-file <path>`
32
+
33
+ ## Required Links In PR Description
34
+
35
+ - Spec: `docs/specs/<slug>-spec.md`
36
+ - Plan: `docs/plans/active/<slug>-plan.md`
37
+ - Evidence (if any): `docs/artifacts/<slug>/...`
38
+
39
+ ## Checks
40
+
41
+ - View checks:
42
+ - `gh pr checks`
43
+ - View a failing run:
44
+ - `gh run view --log-failed`
45
+
@@ -0,0 +1,43 @@
1
+ ---
2
+ title: "Record Evidence"
3
+ use_when: "You need screenshots or short recordings as proof of failure and proof of resolution, especially for UI or behavior changes."
4
+ called_from:
5
+ - he-video
6
+ - he-verify-release
7
+ - he-implement
8
+ ---
9
+
10
+ # Record Evidence
11
+
12
+ This runbook is repo-specific and **additive only**. It must not waive or override any gates enforced by skills.
13
+
14
+ Evidence should be easy to review, easy to find, and tied to an artifact (plan/PR) so it does not get lost.
15
+
16
+ ## What To Capture
17
+
18
+ - Failure evidence: what is broken, with a minimal reproduction
19
+ - Resolution evidence: the same reproduction after the fix
20
+ - Any relevant logs or error output (short)
21
+
22
+ ## Where To Put It
23
+
24
+ - Link evidence from:
25
+ - `docs/plans/active/<slug>-plan.md` under `Artifacts and Notes` and `Verify/Release Decision`
26
+ - the PR description (if one exists)
27
+
28
+ ## Naming Convention
29
+
30
+ Use predictable names so evidence is searchable:
31
+
32
+ - `<slug>-failure.<ext>`
33
+ - `<slug>-resolution.<ext>`
34
+
35
+ If multiple clips exist:
36
+
37
+ - `<slug>-failure-1.<ext>`, `<slug>-resolution-1.<ext>`
38
+
39
+ ## Minimum Bar
40
+
41
+ - If you claim a bug exists, there is at least one artifact showing it.
42
+ - If you claim it is fixed, there is at least one artifact showing the fix under the same scenario.
43
+ - Prefer short clips (10-60s) over long walkthroughs.
@@ -0,0 +1,42 @@
1
+ ---
2
+ title: "Reproduce Bug"
3
+ use_when: "You have a bug report and need a minimal, reliable reproduction with evidence before implementing a fix."
4
+ called_from:
5
+ - he-implement
6
+ - he-video
7
+ ---
8
+
9
+ # Reproduce Bug
10
+
11
+ This runbook is repo-specific and **additive only**. It must not waive or override any gates enforced by skills.
12
+
13
+ The goal is a smallest-possible reproducer you can run repeatedly to prove the bug exists and prove it is fixed.
14
+
15
+ ## Repro Checklist
16
+
17
+ 1. Write down the expected behavior vs observed behavior in plain language.
18
+ 2. Reduce to one of:
19
+ - a single command (unit/integration test, script, request), or
20
+ - a single UI flow script (agent-browser), or
21
+ - a single minimal fixture (input file, request payload).
22
+ 3. Make it deterministic:
23
+ - pin any randomness, time, or external dependencies when possible
24
+ - record env/config assumptions
25
+
26
+ ## Evidence Capture
27
+
28
+ - For UI/behavior: capture a short `failure` video via `he-video`.
29
+ - For non-UI: capture terminal output (command + short excerpt) and link it in the plan.
30
+
31
+ ## Test Strategy (Preferred)
32
+
33
+ - Add a real unit or e2e test that fails on the current state.
34
+ - Avoid mock-only tests unless the repo explicitly documents an exception.
35
+
36
+ ## Plan Updates
37
+
38
+ Update `docs/plans/active/<slug>-plan.md`:
39
+
40
+ - `Progress`: add/mark the repro artifact as complete only when repeatable
41
+ - `Artifacts and Notes`: link the repro command/script and evidence paths
42
+
@@ -0,0 +1,42 @@
1
+ ---
2
+ title: "Respond To Feedback"
3
+ use_when: "A PR has review comments or requested changes, and you need a consistent loop to address them with evidence and minimal diffs."
4
+ called_from:
5
+ - he-github
6
+ - he-review
7
+ - he-implement
8
+ ---
9
+
10
+ # Respond To Feedback
11
+
12
+ This runbook is repo-specific and **additive only**. It must not waive or override any gates enforced by skills.
13
+
14
+ Treat feedback as new requirements. The objective is to address comments with the smallest correct change and keep the plan/evidence accurate.
15
+
16
+ ## Triage
17
+
18
+ 1. Group comments by theme (correctness, security/data, architecture, taste).
19
+ 2. Identify which comments require code changes vs explanation-only.
20
+ 3. For any comment that is ambiguous or high risk, escalate per `he-review` SKILL.md § Escalation.
21
+
22
+ ## Commands (Recommended)
23
+
24
+ - Read comments:
25
+ - `gh pr view --comments`
26
+ - Re-check CI:
27
+ - `gh pr checks`
28
+ - Pull failed logs:
29
+ - `gh run view --log-failed`
30
+
31
+ ## Fix Loop
32
+
33
+ 1. Make the root-cause fix.
34
+ 2. Update tests/e2e evidence as needed.
35
+ 3. Update the active plan:
36
+ - `Progress` items
37
+ - `Review Findings` (if you’re tracking findings there)
38
+ - `Artifacts and Notes`
39
+ 4. Push and re-check (when approved):
40
+ - `git push`
41
+ - `gh pr checks`
42
+
@@ -0,0 +1,31 @@
1
+ ---
2
+ title: "Review Findings"
3
+ use_when: "Writing or interpreting review findings in docs/plans/active/<slug>-plan.md under the Review Findings section."
4
+ called_from:
5
+ - he-review
6
+ ---
7
+
8
+ # Review Findings
9
+
10
+ This runbook is repo-specific and **additive only**. It must not waive or override any gates enforced by skills.
11
+
12
+ Review findings must be actionable and verifiable. The goal is to let a future reader fix issues without rediscovering context.
13
+
14
+ ## Required Fields
15
+
16
+ Each finding includes:
17
+
18
+ - priority: `critical|high|medium|low`
19
+ - location: file path + symbol or short pointer
20
+ - issue summary: what is wrong
21
+ - required action: what must change or what proof is missing
22
+ - owner: who is responsible (team/name/agent)
23
+
24
+ ## Priority Rubric, No-Mocks Policy, Mandatory Coverage
25
+
26
+ Canonical definitions live in `he-review` SKILL.md. Add repo-specific examples or exceptions below — do not redefine the severity levels or gate rules.
27
+
28
+ ## Acceptance Rules
29
+
30
+ - Unresolved `critical` or `high` blocks progression to verify/release.
31
+ - `medium` and `low` can proceed only if explicitly accepted in writing in the plan.
@@ -0,0 +1,68 @@
1
+ ---
2
+ title: "Submitting a third-party plugin for official OpenClaw listing"
3
+ called_from:
4
+ - he-learn
5
+ - he-implement
6
+ - he-verify-release
7
+ read_when:
8
+ - You need to submit an external plugin package for official OpenClaw intake
9
+ - You are preparing a reviewable PR to openclaw/openclaw for plugin visibility
10
+ ---
11
+
12
+ # Submitting a third-party plugin for official OpenClaw listing
13
+
14
+ This repository is the third-party plugin source, while OpenClaw core intake is handled through `openclaw/openclaw`. Use this checklist when promoting a plugin from an external repo to official listing visibility.
15
+
16
+ ## Scope
17
+
18
+ Apply this process for a plugin that is already validated in its own repo and needs official OpenClaw documentation/intake handling.
19
+
20
+ ## Prerequisites (in plugin repo)
21
+
22
+ - Plugin manifest and metadata validated (`openclaw.plugin.json`, `package.json#openclaw.extensions`, `package.json#name`).
23
+ - Plugin smoke/contract checks pass.
24
+ - Runtime evidence available for plugin load and behavior.
25
+
26
+ ## Prepare upstream fork PR
27
+
28
+ Because `openclaw/openclaw` generally expects cross-repo PRs from a fork, use this sequence unless the plugin repo is itself an existing fork.
29
+
30
+ 1. Use an org-owned fork as the preferred source (for this repository: `DataFog/openclaw`).
31
+ 2. Create a branch in the fork (for example `openclaw-fogclaw-submission`).
32
+ 3. Copy only official-listing artifacts from the plugin source repo (typically one or more docs/pages under `docs/plugins/`).
33
+ 4. Open PR from the fork branch to `openclaw/openclaw` (base `main`).
34
+
35
+ - If an org-owned fork does not exist yet, use the fastest available forking path to open a temporary PR, then migrate to the org-owned fork once created.
36
+
37
+ Do **not** include unrelated code changes in this PR unless required by maintainer feedback.
38
+
39
+ ## Evidence to include in PR body
40
+
41
+ Use a compact, reproducible evidence block:
42
+
43
+ - `npm test`
44
+ - `npm run build` or `pnpm build` (repo-specific)
45
+ - `npm run test:plugin-smoke`
46
+ - `npm pkg get openclaw`
47
+ - Node import smoke from `dist/index.js`
48
+
49
+ ## Useful PR body sections
50
+
51
+ - Summary and impact
52
+ - What changed and what did not change (scope boundary)
53
+ - Security impact
54
+ - Commands + expected outputs
55
+ - Human verification
56
+ - Compatibility/rollback
57
+
58
+ ## Review-time guardrails
59
+
60
+ - Verify PR template expectations from `.github/pull_request_template.md` in upstream repo.
61
+ - Keep PR title clear and scoped to official-listing changes.
62
+ - Track maintainer feedback separately; only apply plugin code changes if explicitly requested.
63
+
64
+ ## Post-creation tracking
65
+
66
+ - Record PR URL, branch/commit, and CI check status in the active initiative plan.
67
+ - Keep plugin evidence/release status in sync with maintainer review and upstream merge checks.
68
+ - If `@openclaw/<plugin>` is not yet visible in npm, record that as an explicit follow-up item rather than conflating it with code issues.
@@ -0,0 +1,59 @@
1
+ ---
2
+ title: "Update AGENTS.md"
3
+ use_when: "Creating or updating a project's AGENTS.md (agent instructions, conventions, and workflows)."
4
+ called_from:
5
+ - he-bootstrap
6
+ - he-learn
7
+ - he-doc-gardening
8
+ ---
9
+
10
+ # Update AGENTS.md
11
+
12
+ This runbook is repo-specific and **additive only**. It must not waive or override any gates enforced by skills.
13
+
14
+ AGENTS.md is the agent-facing README: a predictable place to put the few repo-specific instructions an agent needs to work effectively.
15
+
16
+ When `he-bootstrap` runs in a repo that already has `AGENTS.md`, it appends a managed block once using:
17
+
18
+ - `<!-- he-bootstrap:start -->`
19
+ - `<!-- he-bootstrap:end -->`
20
+
21
+ Do not edit outside your repo's intended scope when touching this managed block.
22
+
23
+ ## What To Optimize For
24
+
25
+ - Keep it short and stable (a map, not an encyclopedia).
26
+ - Put only high-leverage, repo-specific guidance here: build/test commands, conventions, and hard constraints.
27
+ - Add rules over time when you observe repeated failure modes; do not try to predict everything up front.
28
+
29
+ ## What To Put Elsewhere
30
+
31
+ - Long procedures, checklists, and evolving processes: `docs/runbooks/<topic>.md` and link from AGENTS.md.
32
+ - One-off migrations or multi-hour work: a plan/spec doc under `docs/` (not in AGENTS.md).
33
+
34
+ ## Minimum Sections (Good Starting Point)
35
+
36
+ - Setup commands (install, dev, test, lint) in copy-pastable form.
37
+ - Repo map (where the important stuff lives; key entrypoints).
38
+ - Conventions (formatting, naming, dependency rules, boundaries).
39
+ - Safety and verification (what not to do; how to prove the change works here).
40
+ - Runbook index (links into `docs/runbooks/` for process).
41
+
42
+ ## Rules Of Thumb When Editing AGENTS.md
43
+
44
+ - If it changes often, it probably belongs in a runbook, not AGENTS.md.
45
+ - Prefer "When X, do Y" over vague guidance.
46
+ - Make requirements verifiable (a command, a file path, an expected output).
47
+ - Avoid duplicating information already in `docs/`; link instead.
48
+ - Keep any `he-bootstrap` managed block concise and link-first to avoid disrupting existing user conventions.
49
+
50
+ ## Quick Update Checklist
51
+
52
+ 1. Confirm scope: are you editing the right AGENTS.md for the files you are touching (root vs nested)?
53
+ 2. Keep it minimal: can you replace paragraphs with a link to a runbook?
54
+ 3. Verify paths/commands exist:
55
+
56
+ ```sh
57
+ rg -n "docs/runbooks|PLANS\\.md|Runbooks|Setup|test|lint" AGENTS.md
58
+ find docs/runbooks -type f -maxdepth 2 -name "*.md" -print
59
+ ```
@@ -0,0 +1,42 @@
1
+ ---
2
+ title: "Update Domain Docs"
3
+ use_when: "A change introduces new product/engineering policy (security, reliability, frontend, observability, design) that should be captured as durable guidance for future work."
4
+ called_from:
5
+ - he-plan
6
+ - he-implement
7
+ - he-learn
8
+ - he-doc-gardening
9
+ ---
10
+
11
+ # Update Domain Docs
12
+
13
+ This runbook is repo-specific and **additive only**. It must not waive or override any gates enforced by skills.
14
+
15
+ Domain docs live under `docs/` and capture stable, repo-specific policy. Update them when you learn something that will prevent future bugs, regressions, or confusion.
16
+
17
+ ## What Counts As A Domain-Doc Change
18
+
19
+ - A recurring decision rule ("we always do X when Y").
20
+ - A new constraint or boundary (security model, data sensitivity, performance guardrails).
21
+ - An operational expectation (SLOs, monitoring, alerts, rollback rules).
22
+ - A UI/UX standard or accessibility requirement.
23
+
24
+ If it's a one-off procedure or checklist, prefer a runbook in `docs/runbooks/`.
25
+
26
+ ## Where To Put It
27
+
28
+ - The registry: `docs/DOMAIN_DOCS.md` (what exists and why).
29
+ - The doc itself (when present): `docs/SECURITY.md`, `docs/RELIABILITY.md`, `docs/FRONTEND.md`, `docs/OBSERVABILITY.md`, `docs/DESIGN.md`, `docs/PRODUCT_SENSE.md`.
30
+
31
+ ## How To Update (Minimum)
32
+
33
+ 1. Add the smallest rule that will prevent the problem from recurring (short, testable language).
34
+ 2. Include a concrete anchor:
35
+ - a file path, command, config key, or observable behavior.
36
+ 3. Avoid long procedures; link to a runbook if needed.
37
+ 4. If the change implies enforcement, note the guardrail candidate (lint/test/CI gate) so it can be promoted later.
38
+
39
+ ## When To Do This
40
+
41
+ - During `he-learn`, when converting "what happened" into durable prevention.
42
+ - During review, if you discover undocumented constraints the next contributor will trip over.
@@ -0,0 +1,41 @@
1
+ ---
2
+ title: "Validate Current State"
3
+ use_when: "Starting an initiative and you need to confirm you understand the current behavior, repo state, and baseline signals before changing code."
4
+ called_from:
5
+ - he-workflow
6
+ - he-implement
7
+ ---
8
+
9
+ # Validate Current State
10
+
11
+ This runbook is repo-specific and **additive only**. It must not waive or override any gates enforced by skills.
12
+
13
+ This runbook defines the minimum baseline checks before claiming you understand "what's broken" (or "what exists") today.
14
+
15
+ ## Repo Baseline
16
+
17
+ - Confirm you are in the intended workspace (worktree/branch):
18
+ - `git status --short --branch`
19
+ - Confirm clean-ish state (or record intentional local changes):
20
+ - `git diff`
21
+ - Confirm remote + default branch context:
22
+ - `git remote -v`
23
+
24
+ ## Behavior Baseline (Customize Per Repo)
25
+
26
+ Record the exact commands used and a short excerpt of the output in the active plan.
27
+
28
+ - Boot the app/service:
29
+ - `<command>`
30
+ - Run the fastest “is it alive” check:
31
+ - `<command>`
32
+ - Run targeted tests for the area (if they exist):
33
+ - `<command>`
34
+
35
+ ## Evidence
36
+
37
+ Link evidence from `docs/plans/active/<slug>-plan.md` under:
38
+
39
+ - `Surprises & Discoveries` (what you observed)
40
+ - `Artifacts and Notes` (logs, screenshots, recordings)
41
+