Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,4 @@ __pycache__/
*.py[cod]
.DS_Store
.vscode/
dist/
5 changes: 3 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -113,8 +113,9 @@ for foreground-app time or application launches. The skill can provide a
clearly labeled limited-evidence report but will not invent time totals.

See [PRIVACY.md](PRIVACY.md) for the data-handling rules and
[CONTRIBUTING.md](CONTRIBUTING.md) for development checks. Planned improvements
are listed in [ROADMAP.md](ROADMAP.md). Maintainers can reuse the
[CONTRIBUTING.md](CONTRIBUTING.md) for development checks, and
[SUPPORT.md](SUPPORT.md) for safe support requests. Planned improvements are
listed in [ROADMAP.md](ROADMAP.md). Maintainers can reuse the
[launch kit](PROMOTION.md) for privacy-accurate project announcements. Public
product updates are recorded in [docs/CHANGELOG.md](docs/CHANGELOG.md).

Expand Down
12 changes: 12 additions & 0 deletions SUPPORT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# Support

Use the project's [GitHub Issues](https://github.com/liuyewang/computer-usage-summary-skill/issues/new/choose)
for installation, compatibility, and reporting questions.

Before opening an issue, remove all ActivityWatch exports, window titles, URLs,
account names, local paths, screenshots with private content, and access tokens.
For suspected security or privacy vulnerabilities, follow
[SECURITY.md](SECURITY.md) instead of opening a public issue.

The project is maintained on a best-effort basis. It does not provide managed
hosting, account support, cloud synchronization, or data recovery.
66 changes: 66 additions & 0 deletions docs/OPENAI_SUBMISSION.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
# OpenAI Plugin Submission Notes

This document is the reviewer-ready source for a **skills-only** submission to
the OpenAI Plugins Directory. It contains no user activity data.

## Listing

| Field | Value |
| --- | --- |
| Plugin name | Computer Usage Summary |
| Publisher | liuyewang (individual identity; verify in the OpenAI Platform before submission) |
| Category | Productivity |
| Short description | Private local ActivityWatch summaries |
| Website | https://liuyewang.github.io/computer-usage-summary-skill/ |
| Support | https://github.com/liuyewang/computer-usage-summary-skill/blob/main/SUPPORT.md |
| Privacy policy | https://github.com/liuyewang/computer-usage-summary-skill/blob/main/PRIVACY.md |
| Terms | https://github.com/liuyewang/computer-usage-summary-skill/blob/main/LICENSE |
| Availability | Global |
| Authentication | None |
| MCP server | None |

## Release Notes

Initial public skills-only submission. Computer Usage Summary converts local
ActivityWatch records into app, AFK, project, category, billable-time, and
sanitized timeline reports. It supports macOS, Windows, and Linux. The plugin
does not require an account, browser extension, cloud sync, telemetry, or a
network service beyond the user's local ActivityWatch API. URLs are removed
before reports are created.

## Starter Prompts

1. Summarize what I did on my computer today.
2. Create a paste-ready table of my app usage this week.
3. Show a private timeline of my local computer activity.

## Positive Test Cases

Use the repository's fixed synthetic ActivityWatch sample and run
`python3 -m unittest discover -s tests -v` before submission. The test suite
does not connect to a real ActivityWatch instance.

| Prompt or scenario | Expected behavior |
| --- | --- |
| Summarize local activity for one day with ActivityWatch running. | Returns confirmed active and AFK totals plus foreground-app sessions from the local API. |
| Create a weekly project report with a local rules JSON file. | Maps sanitized app/title context to project, client, category, and billable totals; first rule wins. |
| Export an app report as TSV. | Produces paste-ready columns and escapes spreadsheet formula-like cells. |
| Export a timeline as CSV with `--csv-bom --hide-titles`. | Produces a UTF-8-BOM CSV and replaces every title with `[Title hidden]`. |
| Request the monthly app-trend report. | Produces local-date trend rows with active, AFK, and billable time. |

## Negative Test Cases

| Prompt or scenario | Expected safe behavior |
| --- | --- |
| Request a historical report when the local ActivityWatch API is unavailable. | Marks duration and session fields unavailable with a structured local-source reason; does not invent totals. |
| Request a report when the required ActivityWatch buckets are missing. | Returns an unavailable result identifying the missing local source. |
| Provide malformed local attribution rules. | Rejects the rules configuration without exporting, uploading, or changing user data. |

## Reviewer Notes

- Upload the generated skills-only ZIP from `dist/`; it contains the final
installable plugin tree only.
- The repository's tests and fixtures are separate from the uploaded plugin
tree so reviewers can inspect them without installing test-only content.
- The plugin has no credentials, account flows, MCP tools, UI, or external
endpoint. Its default API endpoint is `http://127.0.0.1:5600/api/0`.
Loading