Use when the user wants to read today's code commits and submit the same day's work-hours entry in a web timesheet, especially when CNB, Git, and Playwright MCP may be needed and secrets must stay outside the skill files.
Use this skill to collect a user's same-day commit activity, turn it into a concise work summary, and submit a daily work-hours record through a web timesheet.
Keep the skill secret-free. Never store, hardcode, or repeat real usernames, passwords, tokens, bearer headers, or repository credentials in any skill file, example, screenshot, log excerpt, or generated note.
Before doing any repository lookup or browser filing, verify MCP readiness.
Required Codex config in ~/.codex/config.toml:
[features]
rmcp_client = true
[mcp_servers.playwright]
command = "npx"
args = ["@playwright/mcp@latest"]
[mcp_servers.cnb]
url = "https://mcp.cnb.cool/mcp"
http_headers = { Authorization = "Bearer <CNB_TOKEN>" }
Setup rules:
playwright MCP is missing, stop and tell the user to add the snippet above and restart Codex.cnb MCP is missing, stop and tell the user to add the snippet above with a real CNB token and restart Codex.When the user wants the credentials reused later, store them only in the current working directory, never in the skill directory.
Use this file name:
.working-hours-reporting.local.jsonExpected shape:
{
"cnb_token": "<CNB_TOKEN>",
"cnb_git_username": "<CNB_GIT_USERNAME>",
"timesheet_username": "<TIMESHEET_USERNAME>",
"timesheet_password": "<TIMESHEET_PASSWORD>"
}
Safety rules:
.gitignore already ignores .working-hours-reporting.local.json.Collect only what is needed for the current run:
.working-hours-reporting.local.jsonIf any required value is missing, ask for it explicitly. Do not invent credentials, repository paths, branch names, or field mappings.
Use this order:
git log --all or the equivalent full-reference scan before concluding the author has no commit for that date.Hard stop rule:
Prefer one compact summary sentence for the timesheet unless the user explicitly wants multiple lines.
Read workflow-notes.md when you need the detailed retrieval and filing sequence.
Use Playwright MCP for the timesheet flow.
Required browser behavior:
If the form uses custom controls, prefer real user interactions first. Use DOM-level fallback only when the component blocks normal input and the fallback does not weaken correctness.
Apply these rules without exception:
SKILL.md, references/, agents/openai.yaml, and examples.CNB_TOKEN, TIMESHEET_USERNAME, and TIMESHEET_PASSWORD.Read secret-handling.md before using any credential in a live run.
At the end of a successful run, report only:
If the run fails, report the exact blocking step and the minimum additional input needed from the user.