From fb5c91f788d101fb77336f9bb96e05cc41ce9769 Mon Sep 17 00:00:00 2001 From: Headgent Development Date: Fri, 14 Aug 2026 15:10:16 +0200 Subject: [PATCH] docs(skill): AK5 - WIE-Interna entfernt, WAS-Zusicherungen unveraendert --- .claude/skills/support-scheduling/SKILL.md | 28 ++-------------------- 1 file changed, 2 insertions(+), 26 deletions(-) diff --git a/.claude/skills/support-scheduling/SKILL.md b/.claude/skills/support-scheduling/SKILL.md index 27f21d9..ef3d269 100644 --- a/.claude/skills/support-scheduling/SKILL.md +++ b/.claude/skills/support-scheduling/SKILL.md @@ -11,28 +11,6 @@ next: [] # SCHEDULING_COMPONENT_SKILL > jardissupport/scheduling | NS: `JardisSupport\Scheduling` | Pure-logic scheduling | PHP 8.2+ -## ARCHITECTURE -``` -Schedule (Orchestrator, fluent API) - → TaskBuilder (collects config) - → ScheduledTask (final readonly VO) - → CronExpression (Orchestrator, 5 closures bound in parse()) - ParseExpression string → array|null> - ResolveTimezone DateTimeInterface → DateTimeImmutable - MatchFields DateTimeImmutable → bool - FindNextRun DateTimeImmutable → DateTimeImmutable - FindPreviousRun DateTimeImmutable → DateTimeImmutable - DescribeExpression () → string - -Constraints (ConstraintInterface: __invoke(DateTimeInterface): bool) - TimeWindow between / unlessBetween - DayOfWeek weekdays / weekends / days - CallableCondition when / skip (inverted flag) - EnvironmentMatch environments - -ValidateSchedule → list -``` - ## CONTRACTS (`JardisSupport\Contract\Scheduling\*`) ```php CronExpressionInterface: isDue($now), nextRun($from), nextRuns($from, $count), previousRun($from), describe() @@ -92,7 +70,6 @@ Steps: */5 * * * * Combined: 1-10/3 * * * * Predefined: @daily @hourly @weekly @monthly @yearly @annually @midnight ``` -- `null` in parsed array = wildcard; `list` = resolved values. - Weekday `7` is alias for `0` (Sunday). ## FLUENT TIME HELPERS @@ -144,7 +121,6 @@ InvalidScheduleException::invalidTime(string $time) ``` ## CONVENTIONS -- Tags: OR semantics when filtering; `array_values(array_unique(...))` on merge. +- Tags: OR semantics when filtering; deduplicated on merge. - Priority: sorted descending (highest value first). -- `ScheduledTask::constraints()` accessor used by `ValidateSchedule`. -- `ValidateSchedule` checks: empty schedule (warning), duplicate names (error), conflicting day constraints (warning). +- `validate()` checks: empty schedule (warning), duplicate names (error), conflicting day constraints (warning).