Skip to content

Add README usage guide and AGENTS.md#26

Merged
marianogoldman merged 1 commit into
masterfrom
docs/add-readme-and-agents
Jun 13, 2026
Merged

Add README usage guide and AGENTS.md#26
marianogoldman merged 1 commit into
masterfrom
docs/add-readme-and-agents

Conversation

@marianogoldman

Copy link
Copy Markdown
Contributor

Summary

Documentation-only change. No code or behavior is modified.

  • README.md — replaces the leftover skeleton template with real documentation:
    • Project overview (framework-agnostic availability/slotting library on top of Carbon + league/period).
    • Requirements and installation.
    • The WeeklySchedule → Agenda → TimeSlotter → slots pipeline, with a concepts table.
    • Runnable usage examples (weekly schedule, WeeklyScheduleAgenda, SingleDateRangeAgenda, AgendaSlotter with before/after gaps, DaySlotter), all drawn from the existing test suite.
    • The WeeklySchedule JSON schema, timezone behavior, and caveats (hours_in_advance is metadata only; disable_all is enforced).
    • Updated build badge from Travis to GitHub Actions.
  • AGENTS.md — new file documenting the architecture, repo layout, conventions/gotchas, commands, CI/quality gates, and contributor working agreements (English-only, tests required, framework-agnostic).

Testing

Not applicable — docs only. The full suite (37 tests) was run locally and passes on PHP 8.4 to confirm the documented examples reflect real behavior.

🤖 Generated with Claude Code

Replace the skeleton README template with real documentation: project
overview, requirements, the schedule → agenda → slotter pipeline, runnable
usage examples drawn from the test suite, the WeeklySchedule JSON schema,
timezone notes, and caveats.

Add AGENTS.md describing the architecture, conventions, gotchas, commands,
and working agreements for contributors and AI coding agents.

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
@marianogoldman marianogoldman marked this pull request as ready for review June 13, 2026 11:56
@marianogoldman marianogoldman merged commit 157e4c7 into master Jun 13, 2026
2 checks passed
@marianogoldman marianogoldman deleted the docs/add-readme-and-agents branch June 13, 2026 11:56
marianogoldman added a commit that referenced this pull request Jun 13, 2026
Rebuild CHANGELOG.md in Keep a Changelog format from every tagged release
(v0.0.1 through v4.1.2) using the GitHub release notes and the merged PRs
between tags. The Unreleased section also captures the changes already on
master without a release yet (#25, #26) alongside the security hardening.

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
marianogoldman added a commit that referenced this pull request Jun 13, 2026
* Harden scheduling against unbounded ranges and invalid input

Security review follow-up. No injection or vulnerable dependencies were
found; the realistic risks were resource exhaustion and weak input
validation. This addresses them:

- Cap requested date ranges (DoS guard). WeeklyScheduleAgenda,
  AgendaSlotter and DaySlotter now take an optional maxDays argument
  (default 366, 0 disables) and throw DateRangeTooLargeException when the
  [from, to] window is larger, via a shared DateRangeGuard.
- Reject non-positive duration/step (and negative timeAfter/timeBefore)
  in the slotters with InvalidArgumentException, preventing degenerate
  zero-interval loops.
- Validate WeeklySchedule times strictly as a time of day (HH:MM or
  HH:MM:SS, 00:00-23:59), rejecting relative expressions such as "now".
- Throw a clear Exception on malformed/non-object JSON in
  WeeklySchedule::fromJson() instead of a TypeError.

Docs (README caveats + schema note) and CHANGELOG updated.

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>

* Reconstruct historical changelog from past releases

Rebuild CHANGELOG.md in Keep a Changelog format from every tagged release
(v0.0.1 through v4.1.2) using the GitHub release notes and the merged PRs
between tags. The Unreleased section also captures the changes already on
master without a release yet (#25, #26) alongside the security hardening.

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>

---------

Co-authored-by: Claude Opus 4.8 (1M context) <[email protected]>
@marianogoldman marianogoldman added the documentation Improvements or additions to documentation label Jun 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant