A Slack bot for tracking intern work hours on the Lakeland Digital Archive project. Runs on Val Town with SQLite storage.
| Command | Description |
|---|---|
/logtime | Open a form to log time (date, duration, task, project, grant) |
/logtime list | Show your 5 most recent entries with edit/delete options |
/timesheet | View the current week's report (only visible to you) |
/timesheet 2026-02-17 2026-02-21 | Report for a specific date range |
/timesheet @person | Report filtered to one person |
| Command | Description |
|---|---|
/timesheet share | Post a formatted report visible to everyone in the channel |
/timesheet share 2026-02-17 2026-02-21 | Share a report for a specific date range |
/admin-timesheet list | List all projects, grants, task types, and interns |
/admin-timesheet add task "Name" | Add a task type |
/admin-timesheet add project "Name" | Add a project |
/admin-timesheet add grant "Code" "Name" | Add a grant |
/admin-timesheet intern add @person | Register an intern for reminders |
/admin-timesheet reminder on/off | Toggle weekly DM reminders |
npm install npm test # run tests (watch mode) npm run test:run # run tests once npm run check # TypeScript type check
Tests use an in-memory SQLite database via @libsql/client — no setup needed.
The app runs as a Val Town HTTP val. Push changes with:
vt push
| Variable | Description |
|---|---|
SLACK_BOT_TOKEN | Bot User OAuth token (xoxb-...) |
SLACK_SIGNING_SECRET | Request signing secret from Slack app config |
ADMIN_USER_IDS | Comma-separated Slack user IDs for supervisor commands |
chat:write, commands, im:write
We developed this application using Anthropic's Claude as a generative coding tool, with human direction and review. AI generated implementations, tests, and documentation based on the Slack Block Kit and Val Town APIs. Human maintainers directed requirements, reviewed all outputs, and take full responsibility for the final code.
AI capabilities derive partly from programmers whose public work became training data. Our open-source output depends on proprietary AI infrastructure.
Following Apache and
OpenInfra guidance, commits include
Co-Authored-By: trailers for AI-assisted contributions.
The Clear BSD License (SPDX: BSD-3-Clause-Clear) — see LICENSE for details.