clawpilot 0.1.1 → 0.2.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/README.md +160 -67
- package/bin/cli.js +591 -100
- package/docs/PUBLISH_CHECKLIST.md +31 -22
- package/docs/plans/2026-02-13-v0.3-clawra-gap-plan.md +199 -0
- package/docs/plans/2026-02-13-v0.3-implementation.md +434 -0
- package/docs/releases/v0.1.2.md +57 -0
- package/docs/releases/v0.2.0-draft.md +24 -0
- package/docs/releases/v0.2.1-draft.md +19 -0
- package/docs/troubleshooting.md +44 -0
- package/package.json +1 -1
- package/skill/SKILL.md +33 -22
- package/src/config/migrations.js +68 -0
- package/src/install.js +248 -181
- package/src/preflight.js +288 -0
- package/src/runtime/index.js +127 -0
- package/src/runtime/openclaw-gateway.js +135 -0
- package/src/runtime/productivity.js +42 -0
- package/src/runtime/role-pack.js +11 -0
- package/src/runtime/social-formatters.js +22 -0
- package/src/runtime/state-store.js +33 -0
- package/src/runtime/template-renderer.js +7 -0
- package/src/runtime/weekly-report.js +19 -0
- package/templates/content/evening.md +7 -0
- package/templates/content/midday.md +8 -0
- package/templates/content/morning.md +8 -0
- package/templates/content/report.md +5 -0
- package/templates/content/social-linkedin.md +8 -0
- package/templates/content/social-telegram.md +8 -0
- package/templates/content/social-x.md +8 -0
- package/templates/role-packs/hana.json +7 -0
- package/templates/role-packs/minji.json +7 -0
- package/templates/soul-injection.md +38 -14
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
# clawpilot v0.1.2
|
|
2
|
+
|
|
3
|
+
Released: 2026-02-13
|
|
4
|
+
|
|
5
|
+
## Highlights
|
|
6
|
+
|
|
7
|
+
- Added installer non-interactive mode with `--yes`.
|
|
8
|
+
- Added timezone override support with `--timezone <IANA>`.
|
|
9
|
+
- Improved installer validation and error messaging for missing option values.
|
|
10
|
+
- Improved productivity loop prompt structure (Morning / Midday / Evening flow).
|
|
11
|
+
- Added troubleshooting guidance for npm publish `E403` (2FA/token setup).
|
|
12
|
+
|
|
13
|
+
## What Changed
|
|
14
|
+
|
|
15
|
+
### Installer UX
|
|
16
|
+
|
|
17
|
+
- New CLI option: `--yes`
|
|
18
|
+
- Disables prompts and fails fast when required values are missing.
|
|
19
|
+
- New CLI option: `--timezone <IANA>`
|
|
20
|
+
- Persists explicit timezone into OpenClaw config.
|
|
21
|
+
- CLI help output now documents the new options.
|
|
22
|
+
- Installer now prints a concise post-install next step message.
|
|
23
|
+
|
|
24
|
+
### Reliability
|
|
25
|
+
|
|
26
|
+
- Reinstall and config update behavior remain idempotent.
|
|
27
|
+
- Existing custom fields under `skills.entries.clawpilot-productivity` are preserved.
|
|
28
|
+
- `skills.load.extraDirs` remains deduplicated across repeated installs.
|
|
29
|
+
|
|
30
|
+
### Prompt Template
|
|
31
|
+
|
|
32
|
+
- Refined `templates/soul-injection.md` to enforce a clearer daily operating format:
|
|
33
|
+
- Morning: 3 measurable tasks
|
|
34
|
+
- Midday: status + unblock action
|
|
35
|
+
- Evening: review + tomorrow first action
|
|
36
|
+
- Added explicit rescue sprint guardrail (max two per week).
|
|
37
|
+
|
|
38
|
+
### Docs
|
|
39
|
+
|
|
40
|
+
- Added Quick Start and local isolated install examples.
|
|
41
|
+
- Added npm publish troubleshooting for `E403`.
|
|
42
|
+
- Added 0.1.2 plan/design docs.
|
|
43
|
+
|
|
44
|
+
## Verification
|
|
45
|
+
|
|
46
|
+
- Test suite: `node --test` (7/7 passing)
|
|
47
|
+
- Package dry run: `npm pack --dry-run`
|
|
48
|
+
- Smoke flow validated:
|
|
49
|
+
- `node bin/cli.js install --home <temp> --yes --timezone UTC`
|
|
50
|
+
- `node bin/cli.js install --home <temp> --yes --timezone UTC --force`
|
|
51
|
+
|
|
52
|
+
## Upgrade
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
npx -y clawpilot@latest --help
|
|
56
|
+
npx -y clawpilot@latest install --yes --timezone UTC
|
|
57
|
+
```
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# clawpilot v0.2.0 (Draft)
|
|
2
|
+
|
|
3
|
+
## Highlights
|
|
4
|
+
|
|
5
|
+
- Added runtime command execution via `clawpilot run`.
|
|
6
|
+
- Added productivity workflow handlers: `morning`, `midday`, `evening`, `report`.
|
|
7
|
+
- Added OpenClaw Gateway delivery adapter (`openclaw message send`).
|
|
8
|
+
- Added fictional K-style role packs (`hana`, `minji`).
|
|
9
|
+
- Added template rendering and runtime state persistence.
|
|
10
|
+
- Added installer defaults for Telegram gateway delivery and role pack config.
|
|
11
|
+
|
|
12
|
+
## Runtime Commands
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
clawpilot run --command morning --dry-run --timezone UTC --role-pack hana
|
|
16
|
+
clawpilot run --command midday --dry-run --status done --status blocked --status deferred
|
|
17
|
+
clawpilot run --command evening --dry-run
|
|
18
|
+
clawpilot run --command report --dry-run
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Notes
|
|
22
|
+
|
|
23
|
+
- This release does not include direct Telegram Bot API webhook integration.
|
|
24
|
+
- Delivery is routed through OpenClaw Gateway.
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# clawpilot v0.2.1 (Draft)
|
|
2
|
+
|
|
3
|
+
## Highlights
|
|
4
|
+
|
|
5
|
+
- Added social recap formatting helpers for Telegram, X, and LinkedIn styles.
|
|
6
|
+
- Added weekly report summarization with completion rate and blocker counts.
|
|
7
|
+
- Added content templates for social output formats.
|
|
8
|
+
- Improved docs coverage for runtime workflows and publishing checks.
|
|
9
|
+
|
|
10
|
+
## New Content Paths
|
|
11
|
+
|
|
12
|
+
- `templates/content/social-telegram.md`
|
|
13
|
+
- `templates/content/social-x.md`
|
|
14
|
+
- `templates/content/social-linkedin.md`
|
|
15
|
+
|
|
16
|
+
## Notes
|
|
17
|
+
|
|
18
|
+
- Focus remains execution-first productivity workflow.
|
|
19
|
+
- Role identity remains fictional and non-celebrity.
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# Troubleshooting
|
|
2
|
+
|
|
3
|
+
Common runtime/install failures and how to fix them quickly.
|
|
4
|
+
|
|
5
|
+
## Error Codes
|
|
6
|
+
|
|
7
|
+
- `gateway_missing`: OpenClaw CLI is unavailable.
|
|
8
|
+
Fix: install OpenClaw and verify with `openclaw --version`.
|
|
9
|
+
- `openclaw_version_unsupported`: OpenClaw version is below minimum required version.
|
|
10
|
+
Fix: upgrade OpenClaw to the minimum version reported by preflight.
|
|
11
|
+
- `openclaw_version_unknown`: OpenClaw version string could not be parsed.
|
|
12
|
+
Fix: verify `openclaw --version` outputs semantic version (`x.y.z`).
|
|
13
|
+
- `gateway_unreachable`: Gateway process is offline or refused connection.
|
|
14
|
+
Fix: start gateway and verify connectivity.
|
|
15
|
+
- `auth_invalid`: Token or gateway auth is invalid.
|
|
16
|
+
Fix: refresh auth token and retry.
|
|
17
|
+
- `channel_not_found`: Target channel/chat is not found.
|
|
18
|
+
Fix: verify `--channel` or `delivery.channel`.
|
|
19
|
+
- `permission_denied`: OS/app permission blocked send.
|
|
20
|
+
Fix: grant permissions and retry.
|
|
21
|
+
- `network_timeout`: DNS/network timeout while sending.
|
|
22
|
+
Fix: retry and verify network path.
|
|
23
|
+
- `invalid_payload`: Message payload rejected (400).
|
|
24
|
+
Fix: validate channel/message/media fields.
|
|
25
|
+
- `rate_limited`: Gateway/provider is throttling requests.
|
|
26
|
+
Fix: add backoff and reduce send frequency.
|
|
27
|
+
- `channel_required`: Non-dry-run command has no channel value.
|
|
28
|
+
Fix: pass `--channel <target>` or set `delivery.channel`.
|
|
29
|
+
- `delivery_channel_missing`: Config check warning for missing default channel in gateway mode.
|
|
30
|
+
Fix: set `delivery.channel` in `openclaw.json` or pass `--channel`.
|
|
31
|
+
- `gateway_token_missing`: Config check warning for missing gateway token source.
|
|
32
|
+
Fix: set `OPENCLAW_GATEWAY_TOKEN` env var or OpenClaw token config.
|
|
33
|
+
|
|
34
|
+
## Useful Commands
|
|
35
|
+
|
|
36
|
+
- JSON error output for automation:
|
|
37
|
+
- `node bin/cli.js run --command morning --json-errors`
|
|
38
|
+
- Preflight summary before install:
|
|
39
|
+
- `node bin/cli.js install --preflight`
|
|
40
|
+
- `node bin/cli.js install --preflight --json-errors`
|
|
41
|
+
- Safe validation without sending:
|
|
42
|
+
- `node bin/cli.js run --command morning --dry-run --timezone UTC`
|
|
43
|
+
- Re-run install with existing policy:
|
|
44
|
+
- `node bin/cli.js install --on-existing update --yes --timezone UTC`
|
package/package.json
CHANGED
package/skill/SKILL.md
CHANGED
|
@@ -1,22 +1,33 @@
|
|
|
1
|
-
# Clawpilot Productivity Skill
|
|
2
|
-
|
|
3
|
-
You are a productivity copilot focused on helping the user ship meaningful work each day.
|
|
4
|
-
|
|
5
|
-
##
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
-
|
|
20
|
-
-
|
|
21
|
-
|
|
22
|
-
-
|
|
1
|
+
# Clawpilot Productivity Skill
|
|
2
|
+
|
|
3
|
+
You are a productivity copilot focused on helping the user ship meaningful work each day.
|
|
4
|
+
|
|
5
|
+
## Runtime Commands
|
|
6
|
+
|
|
7
|
+
- `/morning` - collect and lock top 3 measurable tasks.
|
|
8
|
+
- `/midday` - update status (`done`, `blocked`, `deferred`) for each task.
|
|
9
|
+
- `/evening` - review progress and define tomorrow's first action.
|
|
10
|
+
- `/report` - produce concise summary for user updates.
|
|
11
|
+
|
|
12
|
+
Delivery path:
|
|
13
|
+
- Use OpenClaw Gateway command: `openclaw message send`.
|
|
14
|
+
- Default target platform is Telegram from runtime config.
|
|
15
|
+
|
|
16
|
+
## Core Loop
|
|
17
|
+
|
|
18
|
+
1. Morning planning:
|
|
19
|
+
- Ask for the user's top 3 outcome-based tasks.
|
|
20
|
+
- Ensure each task is specific and verifiable.
|
|
21
|
+
2. Midday check-in:
|
|
22
|
+
- Ask what is done, blocked, or deferred.
|
|
23
|
+
- Help remove one blocker.
|
|
24
|
+
3. Evening review:
|
|
25
|
+
- Summarize completed work.
|
|
26
|
+
- Capture one improvement for tomorrow.
|
|
27
|
+
|
|
28
|
+
## Tone and Constraints
|
|
29
|
+
|
|
30
|
+
- Keep responses short and action-oriented.
|
|
31
|
+
- Be supportive and direct.
|
|
32
|
+
- Avoid guilt, shame, or perfectionist framing.
|
|
33
|
+
- Prefer one next action when the user is stuck.
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
const SKILL_ID = 'clawpilot-productivity';
|
|
2
|
+
const CURRENT_CONFIG_SCHEMA_VERSION = 2;
|
|
3
|
+
|
|
4
|
+
function asObject(value) {
|
|
5
|
+
return value && typeof value === 'object' && !Array.isArray(value) ? value : {};
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
function migrateV1ToV2(inputConfig) {
|
|
9
|
+
const config = { ...asObject(inputConfig) };
|
|
10
|
+
const skills = { ...asObject(config.skills) };
|
|
11
|
+
const entries = { ...asObject(skills.entries) };
|
|
12
|
+
const existingEntry = asObject(entries[SKILL_ID]);
|
|
13
|
+
|
|
14
|
+
if (Object.keys(existingEntry).length > 0) {
|
|
15
|
+
const runtime = { ...asObject(existingEntry.runtime) };
|
|
16
|
+
const defaults = { ...asObject(runtime.defaults) };
|
|
17
|
+
const schedule = { ...asObject(runtime.schedule) };
|
|
18
|
+
|
|
19
|
+
if (existingEntry.timezone && defaults.timezone === undefined) {
|
|
20
|
+
defaults.timezone = existingEntry.timezone;
|
|
21
|
+
}
|
|
22
|
+
if (existingEntry.rolePack && defaults.rolePack === undefined) {
|
|
23
|
+
defaults.rolePack = existingEntry.rolePack;
|
|
24
|
+
}
|
|
25
|
+
if (Object.keys(schedule).length === 0 && existingEntry.schedule) {
|
|
26
|
+
Object.assign(schedule, asObject(existingEntry.schedule));
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
runtime.defaults = defaults;
|
|
30
|
+
runtime.schedule = schedule;
|
|
31
|
+
entries[SKILL_ID] = {
|
|
32
|
+
...existingEntry,
|
|
33
|
+
runtime
|
|
34
|
+
};
|
|
35
|
+
skills.entries = entries;
|
|
36
|
+
config.skills = skills;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
config.configSchemaVersion = 2;
|
|
40
|
+
return config;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
function migrateConfig(sourceConfig = {}) {
|
|
44
|
+
let config = { ...asObject(sourceConfig) };
|
|
45
|
+
let version = Number.isInteger(config.configSchemaVersion)
|
|
46
|
+
? config.configSchemaVersion
|
|
47
|
+
: 1;
|
|
48
|
+
|
|
49
|
+
while (version < CURRENT_CONFIG_SCHEMA_VERSION) {
|
|
50
|
+
if (version === 1) {
|
|
51
|
+
config = migrateV1ToV2(config);
|
|
52
|
+
version = 2;
|
|
53
|
+
continue;
|
|
54
|
+
}
|
|
55
|
+
break;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
if (!Number.isInteger(config.configSchemaVersion)) {
|
|
59
|
+
config.configSchemaVersion = CURRENT_CONFIG_SCHEMA_VERSION;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
return config;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
module.exports = {
|
|
66
|
+
CURRENT_CONFIG_SCHEMA_VERSION,
|
|
67
|
+
migrateConfig
|
|
68
|
+
};
|