Skip to content

Decide and migrate empty-state detection from plugin-side to CLI-side #15

Description

@ivklgn

Problem

Empty-state detection (used for the "your .archcore/ is empty, run /archcore:init" nudge) lives plugin-side in plugins/archcore/bin/session-start and plugins/archcore/bin/lib/empty-state.sh (a find + wc check), while the rest of the SessionStart payload is composed by the CLI's MCP handler. The emptiness signal is therefore recomputed per host instead of coming from one authoritative source.

Expected result

A decision on whether to migrate, and — if yes — moving the empty-state signal into the CLI's SessionStart handler so all hosts share one authoritative check, with the plugin consuming it.

Impact

Removes duplicated per-host logic and keeps the nudge consistent across Claude Code, Cursor and Codex. This is as much a go/no-go decision as an implementation, and the plans gate it on validating the current plugin-side UX first.

Proposed approach

  • Decision issue: migrate vs. keep plugin-side (after UX validation).
  • If migrating: CLI handler owns the signal; plugin consumes it.

Acceptance criteria

  • A recorded decision, and (if approved) a single authoritative empty-state check consumed by all hosts.

References

Design rationale: .archcore/plugin/zero-content-onboarding-implementation.plan.md (Out of scope) and zero-content-onboarding.idea.md. Code: plugins/archcore/bin/session-start, plugins/archcore/bin/lib/empty-state.sh. Cross-repo (Archcore CLI).

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:onboarding/archcore:init and first-run experienceneeds-cliDepends on the separate Archcore CLI (Go) repopriority:P3Optional / roadmapsize:M1-3 days

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions