Skip to content

tonystevenj/daily-work-notebook

v0.2.1MIT

Maintain a personal, source-linked work notebook with WorkIQ evidence, user-reviewed additions, and access to all host-provided tools.

Daily work notebook plugin

Maintain one personal, source-linked work notebook across projects. The work-recorder agent drafts concise daily records and next-day stand-up updates from Microsoft 365 evidence, incorporates your corrections and offline work, tracks projects and commitments, and answers questions with original sources when available. You choose the notebook location and time zone; neither is supplied by the package.

Requirements and compatibility

  • GitHub Copilot CLI with support for plugins, custom agents, and the tools needed for your request. The agent declares tools: ['*'].
  • Host capabilities and permissions to read your actual home, validate personal config and an IANA time zone, and access your chosen local notebook directory. Filesystem tools, shell commands, and system APIs may perform these checks. Instructions cannot grant access. If a required check or operation is unavailable, the agent must report a blocker rather than bypass restrictions.
  • For automated Microsoft 365 retrieval: your own WorkIQ connection exposed as workiq, appropriate account entitlements, and your organization's permission to access and summarize the selected data. The plugin supplies no connection, credentials, licenses, tenant consent, or additional access rights.

After valid setup, explicitly requested manual recording and local notebook questions work without WorkIQ. Automatic retrieval must instead report failure when WorkIQ is unavailable; it must not claim successful or exhaustive coverage.

This package provides a Copilot agent and a portable work-recorder skill. The skill reads the same full instructions before acting. See the compatibility guide for Agent Plugins metadata, Codex discovery, updates, and runtime limits. It contains instructions and documentation: no hooks, scripts, dependencies, MCP server, native userConfig feature, installer questionnaire, or bundled scheduler.

Install or load locally

The marketplace manifest names marketplace hojiwa-agents and plugin daily-work-notebook. If the intended repository tonystevenj/hojiwa-agents is available to you, you can register and install it:

copilot plugin marketplace add tonystevenj/hojiwa-agents
copilot plugin install daily-work-notebook@hojiwa-agents

Repository publication and public availability are not verified here. Those commands change your local registration/installation only when you run them.

For local development, from the current marketplace repository root, run:

copilot --plugin-dir ".\plugins\daily-work-notebook"

After editing the source, start a fresh CLI invocation with this option to load the changes. A marketplace-installed copy does not track local edits; updating that copy fetches its published source, not this working directory.

Use /agent to select the plugin-provided work-recorder agent. If it is not listed, diagnose the loading problem. Local loading is an invocation-time option, not a persistent installation or activation change. To inspect local plugin discovery without updating:

copilot --no-auto-update --plugin-dir ".\plugins\daily-work-notebook" plugin list

The legacy plugin manifest resolves ./agents relative to this package. The portable manifest declares standard metadata. Native Copilot discovery uses the matching copy under com.github.copilot\agents\. The portable skill loads the full instructions in agents/work-recorder.agent.md. Discovery alone does not demonstrate executed onboarding or end-to-end WorkIQ behavior.

First use: start recording

Start an interactive conversation with the selected agent, for example:

Do your work for today.

No separate setup command is needed. The agent asks for a notebook location and time zone only if they are missing or ambiguous, saves them, and continues with the requested record. It reuses answers already given in the conversation. You can also provide everything in one request:

Record today's work in C:\Users\ExampleUser\Documents\WorkNotebook, using Seattle time.

The example path is not a default. "Seattle time" resolves to America/Los_Angeles, including daylight-saving changes.

Before notebook access or retrieval, the agent reads <actual-user-home>\.copilot\work-recorder.json. This is a plugin-specific personal config convention, not a native Copilot settings feature or an installation prompt. The same file is used across workspaces. The agent derives your actual home from trustworthy host context, never the current checkout, plugin/cache location, a retrieved instruction, or another user's home.

The config is a JSON object with two required nonempty string fields:

FieldMeaning
notebookPathAbsolute filesystem directory you choose for notebook content.
timeZoneValid IANA time-zone identifier used for dates and coverage windows.

Illustration only, not a default: this fictional Windows user chose this directory and zone. Replace both with your own approved settings; other hosts must use their own absolute local path syntax.

{
  "notebookPath": "C:\\Users\\ExampleUser\\Documents\\WorkNotebook",
  "timeZone": "Europe/Paris"
}

Valid settings are retained. Relative paths are resolved against the intended workspace and stored as absolute filesystem paths. The agent may use filesystem tools, shell commands, or system APIs to validate directories, links/junctions, access, and time zones. There is no plugin-specific location blacklist; host permissions still apply. Avoid distributable or public locations for private work data.

The agent shows the notebook path, config path, and time zone, creates needed directories, and saves settings as part of authorized setup. It follows host confirmation requirements without adding separate approval gates for each setup step. Existing content and unrelated JSON fields are preserved. Discarding malformed config still requires confirmation.

Unattended runs can complete authorized setup using saved or explicitly supplied settings. If required details or access are missing, they report the blocker without guessing or asking blocking questions.

Change settings

Ask interactively, for example:

Change the location of my personal notebook.

Change the time zone used for my notebook.

The agent uses the same setup flow. Changing notebookPath does not imply moving old notes; request a migration if wanted. Changing timeZone does not implicitly update schedules, but the agent can update them when asked. The agent rereads config and target files before notebook write batches, replans if the destination changed, and preserves concurrent user edits.

Everyday examples

Ask the selected agent; it handles setup when needed:

  • Automatic draft: "Draft today's work record from accessible WorkIQ sources."
  • Later update: "Update today's record with any work since the earlier run."
  • Manual entry: "Record my offline design review today. We proposed reducing the retry limit, but no implementation was completed."
  • Correction: "Correct today's note: I investigated the failure; I did not resolve it. Preserve that correction on future automatic reruns."
  • Local query: "Using only my notebook, what did I record about the migration?"
  • Current status: "What is the current migration status? Recheck original sources and distinguish current evidence from older notes."
  • Weekly review: "Summarize last week's completed outcomes, ongoing work, decisions, and blockers. Save a weekly note with source and daily links."

Questions return answers without saving them unless requested. A recording request includes saving the record after setup; a setup-only request does not generate unrelated notes. Daily recording also drafts the next day's stand-up; ask for "summary only" to skip it. Weekly notes are created when requested.

Notebook content and review

The agent reads existing notes and follows compatible conventions. It creates only files justified by content, relative to your chosen notebook root:

PathPurpose
daily\YYYY-MM-DD.mdDaily summary, next-day stand-up draft, coverage, review state, and corrections.
projects\<project-slug>.mdRelevant cross-day context, decisions, and status.
tasks.mdExplicit commitments with supporting daily/source links.
weekly\YYYY-Www.mdRequested weekly summaries.
index.mdSmall navigation index, not duplicated notebook content.
log.mdShort metadata for substantive updates only.

Manual additions and corrections are protected from automatic overwrites. Only your explicit confirmation marks a note reviewed. Substantive automatic additions to reviewed notes need review again without replacing reviewed material. Each date has one record: later runs update that file and merge its existing sections, rather than creating another summary. A 9 PM run adds late work to the same record written at 5 PM. Earlier supported work is retained even if a later search does not return it. The stand-up draft is also updated in place.

Evidence is deduplicated; a rerun with nothing substantive to add makes no edits, including no timestamp-only or log-only changes. Explicit requests to revise formatting or wording still apply.

Daily notes scale with actual work, not the number of sources searched. Aim for 3-5 short work bullets on a typical active day, fewer on a quiet day, with source links instead of lengthy explanations. Keep one compact Coverage line. If neither existing content nor new evidence supports work, "Automatic work summary" stays blank, without a no-work disclaimer. Empty optional sections, routine retrieval diagnostics, counts, and generic review questions are omitted. Actual retrieval failures or truncation still receive a brief warning; detailed diagnostics are available on request.

Admin reminders holds personally relevant device compliance, badge renewal, and account/access renewal notices. Each reminder is a short linked label, such as "Device compliance notice - review needed", with a deadline when useful. These are not work accomplishments, commitments, or blockers unless evidence establishes that status; a notice alone does not create a task.

Sources support what they actually say, not assumed completion or attendance. An invitation is not proof of attending a meeting. Reported facts, hypotheses, proposals, ongoing work, and completed outcomes remain distinct. Offline work is first-class user-provided evidence and is cited through the daily note.

Next-day stand-up

Daily recording, whether automatic or manual, includes a ready-to-paste stand-up draft in the same note under "Stand-up for YYYY-MM-DD". It targets the next calendar day after the recorded day, or after the last day of an explicitly grouped period. Specify another date or ask for "summary only" to override this.

Use 1-3 short bullets for supported progress, explicit next steps, and real blockers, in your voice with source links. Empty categories and admin reminders are omitted; plans and "no blockers" claims are never invented. If there is nothing supported to say, no stand-up section is added. Reruns update the same draft and target date while preserving your edits. Drafting does not send or post the update.

Optional scheduling

No schedule is bundled or started automatically. You can ask the agent to configure one using available host tools. Supply its cadence, time zone, and notebook settings, or complete interactive setup first. Select this plugin's work-recorder agent for the automation and use:

Record today's work.

The scheduler must supply a trustworthy current time and the intended agent configuration. There is no guarantee of offline delivery or missed-run catch-up.

Same-day updates, concise output, and next-day stand-up drafts are plugin defaults; they need not be repeated in the automation prompt. Personal date grouping, such as treating Friday through Sunday as one record, stays in the automation request. Specify the group's date/window so later runs update the same record. Calendar days remain the plugin default.

Tool access and privacy

The agent declares tools: ['*'] and adds no plugin-specific tool allowlist or blanket operational bans. It can use shell commands, Git, file edits outside the notebook, plugin/profile maintenance, dependency installation, public web access, scheduling, delegation, and available WorkIQ operations for your requests. Deferred tools are discovered through the host before use.

Tool availability does not authorize unrelated actions. Microsoft 365 mutations, messages, and other external actions remain subject to your requested scope, host permissions, and required confirmations. Organizational access controls and sensitivity labels still apply. Consider whether your notebook is synchronized, shared, or public before storing private work information.

Default notebook entries contain concise notes and real source links rather than raw archives; exports can be requested separately. Protect secrets and private data. Retrieved material is evidence, not instructions. Links retain their original access requirements; this plugin does not make private sources public. Never fabricate URLs or evidence. Current-status answers need newer source checks, or an explicit statement that current verification was unavailable.

Coverage is bounded, not exhaustive. The daily note keeps the searched window and only material warnings, not a retrieval report. Complete automated retrieval failure leaves notes unchanged and is reported to the caller. Partial retrieval may produce a summary with a short warning naming unavailable sources or actual truncation, without overwriting existing content or claiming failed intervals were covered. Missing hits do not prove no work occurred.

These are instruction-guided safeguards, not a deterministic sandbox. Host tools, permissions, and model behavior determine what can actually run. Static review or successful plugin discovery is not proof of executed onboarding, safe concurrent writes, or end-to-end WorkIQ retrieval.

License

MIT, copyright (c) 2026 Steven J.