⚠️ OpenSpec-managed issue — this content is automatically synced
from the openspec/ directory. Manual edits will be overwritten on next sync.
Artifacts
Summary
Ship planninq's ADR-046 portal contribution: one plain, dependency-free class
(lib/Portal/PortalContributionProvider.php) that declares what an external
contractor (external-employee audience) may see and do in planninq — read
their own tasks, their own time entries and the projects they are attached to,
and log time — all scoped by the UUID domain refs the portal-identity change
added. No portaliq import, no implements, no info.xml dependency: the class
is inert unless portaliq is installed. This is the code link of the planninq
portal chain and depends_on portal-identity.
Specs
Tasks
Design
See design.md for technical design details.
Synced from openspec/changes/portal-contribution by OpenSpec workflow
App: planninq
Artifacts
Summary
Ship planninq's ADR-046 portal contribution: one plain, dependency-free class
(
lib/Portal/PortalContributionProvider.php) that declares what an externalcontractor (
external-employeeaudience) may see and do in planninq — readtheir own tasks, their own time entries and the projects they are attached to,
and log time — all scoped by the UUID domain refs the
portal-identitychangeadded. No portaliq import, no
implements, noinfo.xmldependency: the classis inert unless portaliq is installed. This is the code link of the planninq
portal chain and
depends_onportal-identity.Specs
Tasks
Design
See design.md for technical design details.
Synced from
openspec/changes/portal-contributionby OpenSpec workflowApp:
planninq