@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.
- package/.github/workflows/harness-docs.yml +30 -0
- package/AGENTS.md +28 -0
- package/LICENSE +21 -0
- package/README.md +208 -0
- package/dist/config.d.ts +4 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +30 -0
- package/dist/config.js.map +1 -0
- package/dist/engines/gliner.d.ts +14 -0
- package/dist/engines/gliner.d.ts.map +1 -0
- package/dist/engines/gliner.js +75 -0
- package/dist/engines/gliner.js.map +1 -0
- package/dist/engines/regex.d.ts +5 -0
- package/dist/engines/regex.d.ts.map +1 -0
- package/dist/engines/regex.js +54 -0
- package/dist/engines/regex.js.map +1 -0
- package/dist/index.d.ts +19 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +157 -0
- package/dist/index.js.map +1 -0
- package/dist/redactor.d.ts +3 -0
- package/dist/redactor.d.ts.map +1 -0
- package/dist/redactor.js +37 -0
- package/dist/redactor.js.map +1 -0
- package/dist/scanner.d.ts +11 -0
- package/dist/scanner.d.ts.map +1 -0
- package/dist/scanner.js +77 -0
- package/dist/scanner.js.map +1 -0
- package/dist/types.d.ts +31 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +18 -0
- package/dist/types.js.map +1 -0
- package/docs/DATA.md +28 -0
- package/docs/DESIGN.md +17 -0
- package/docs/DOMAIN_DOCS.md +30 -0
- package/docs/FRONTEND.md +24 -0
- package/docs/OBSERVABILITY.md +25 -0
- package/docs/PLANS.md +171 -0
- package/docs/PRODUCT_SENSE.md +20 -0
- package/docs/RELIABILITY.md +60 -0
- package/docs/SECURITY.md +50 -0
- package/docs/design-docs/core-beliefs.md +17 -0
- package/docs/design-docs/index.md +8 -0
- package/docs/generated/README.md +36 -0
- package/docs/generated/memory.md +1 -0
- package/docs/plans/2026-02-16-fogclaw-design.md +172 -0
- package/docs/plans/2026-02-16-fogclaw-implementation.md +1606 -0
- package/docs/plans/README.md +15 -0
- package/docs/plans/active/2026-02-16-feat-openclaw-official-submission-plan.md +386 -0
- package/docs/plans/active/2026-02-17-feat-release-fogclaw-via-datafog-package-plan.md +318 -0
- package/docs/plans/active/2026-02-17-feat-submit-fogclaw-to-openclaw-plan.md +244 -0
- package/docs/plans/tech-debt-tracker.md +42 -0
- package/docs/plugins/fogclaw.md +95 -0
- package/docs/runbooks/address-review-findings.md +30 -0
- package/docs/runbooks/ci-failures.md +46 -0
- package/docs/runbooks/code-review.md +34 -0
- package/docs/runbooks/merge-change.md +28 -0
- package/docs/runbooks/pull-request.md +45 -0
- package/docs/runbooks/record-evidence.md +43 -0
- package/docs/runbooks/reproduce-bug.md +42 -0
- package/docs/runbooks/respond-to-feedback.md +42 -0
- package/docs/runbooks/review-findings.md +31 -0
- package/docs/runbooks/submit-openclaw-plugin.md +68 -0
- package/docs/runbooks/update-agents-md.md +59 -0
- package/docs/runbooks/update-domain-docs.md +42 -0
- package/docs/runbooks/validate-current-state.md +41 -0
- package/docs/runbooks/verify-release.md +69 -0
- package/docs/specs/2026-02-16-feat-openclaw-official-submission-spec.md +115 -0
- package/docs/specs/2026-02-17-feat-submit-fogclaw-to-openclaw.md +125 -0
- package/docs/specs/README.md +5 -0
- package/docs/specs/index.md +8 -0
- package/docs/spikes/README.md +8 -0
- package/fogclaw.config.example.json +15 -0
- package/openclaw.plugin.json +45 -0
- package/package.json +37 -0
- package/scripts/ci/he-docs-config.json +123 -0
- package/scripts/ci/he-docs-drift.sh +112 -0
- package/scripts/ci/he-docs-lint.sh +234 -0
- package/scripts/ci/he-plans-lint.sh +354 -0
- package/scripts/ci/he-runbooks-lint.sh +445 -0
- package/scripts/ci/he-specs-lint.sh +258 -0
- package/scripts/ci/he-spikes-lint.sh +249 -0
- package/scripts/runbooks/select-runbooks.sh +154 -0
- package/src/config.ts +46 -0
- package/src/engines/gliner.ts +88 -0
- package/src/engines/regex.ts +71 -0
- package/src/index.ts +223 -0
- package/src/redactor.ts +51 -0
- package/src/scanner.ts +90 -0
- package/src/types.ts +52 -0
- package/tests/config.test.ts +104 -0
- package/tests/gliner.test.ts +184 -0
- package/tests/plugin-smoke.test.ts +114 -0
- package/tests/redactor.test.ts +320 -0
- package/tests/regex.test.ts +345 -0
- package/tests/scanner.test.ts +199 -0
- 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
|
+
|