Workspace Project Manager
Use this skill when the user asks about projects, clients, memory, decisions, documents, settings, saved campaign context, tasks, reminders, or scheduled AI checks.
Model
- Пространство is the user-facing memory container.
- Workspace project is a business, project, direction, or agency client.
workspace_project_id is the canonical id for memory writes.
- Provider identifiers are external entities, not project ids:
client_login, client_id, account_id, counter_id, host_id, subdomain.
Project Scope
Before writing audits, documents, decisions, snapshots, settings, provider links, campaign links, or provider-scoped tasks:
- If exact
workspace_project_id is known, use it.
- Otherwise call
workspace_prepare_project_scope with all known selectors: project_name, provider, external_entity_key, external_campaign_id, client_login, vk_client_id, account_id, metrika_counter_id, lidfly_subdomain, host_id, campaign_name.
- If resolved, write with returned
workspace_project_id.
- If ambiguous, show candidates and ask for exact
workspace_project_id.
- If no project exists or no project matches, offer to create one with
workspace_create_project; do not create "Основной проект" silently.
Provider Links
- Call top-level
get_provider_context with the exact workspace_project_id before treating a missing provider scope as an error.
- If it returns
provider_link_candidates, those scopes are verified but not executable inside the project yet.
- When the user asked to link the cabinet, choose the exact candidate and execute only its prepared
next_action through call_write_tool. Keep its arguments unchanged; MCP confirmation is still required.
- If several candidates are returned, ask the user which cabinet to link. Never invent
client_login from the project/account name or external_entity_key.
- A missing provider link is a normal confirmation-gated write workflow, not a support incident. Do not call
support_prepare_report for it.
- Read-only project members must not receive unlinked owner OAuth candidates; do not try to recover them through personal scope enumeration.
Tools To Prefer
Find every internal Workspace tool with search_tools({ provider: "workspace", ... }) and read its schema with get_tool_schema before the first call.
Read through call_tool:
workspace_list_projects
workspace_get_project
workspace_prepare_project_scope
workspace_prepare_project_deletion
workspace_get_settings
workspace_get_tasks
workspace_get_scheduled_ai_tasks
Write through call_write_tool:
workspace_create_project
workspace_delete_project
workspace_upsert_provider_entity
workspace_link_campaign
workspace_update_settings
workspace_add_tasks
workspace_schedule_ai_task
Never pass top-level meta-tools such as search_tools or get_tool_schema as tool_name.
Permanent Project Deletion
Permanent deletion is owner-only, irreversible, and never allowed in an AI autostart.
- Resolve and use the exact
workspace_project_id; never select a deletion target from a similar name.
- Call read-only
workspace_prepare_project_deletion.
- If
can_delete=false, explain the returned blocker. Archive an active project only if the user asked; protected accounting history means the project must remain archived.
- If ready, show
confirmation_message, the deletion counts, and retained activity-history count. Wait for an explicit textual confirmation.
- Call
workspace_delete_project through call_write_tool with the unchanged workspace_project_id, expected_project_name, and expected_updated_at from that preflight.
- If the target changed, run the preflight again and request a new confirmation. After a transport-uncertain delete, reread the exact project before considering any retry.
Reminders vs AI Autostarts
workspace_add_tasks is a manual reminder: it stores a prompt and due date, but the due date only triggers email and never runs AI or provider tools.
- If a future check must be shown to the owner, asks a question, or needs a new decision or confirmation, use
workspace_add_tasks.
workspace_schedule_ai_task is an AI autostart: LidFly executes the saved plan automatically at the specified time without a new confirmation.
- Objects, actions, values, and all conditional branches must be fully approved before using
workspace_schedule_ai_task.
For workspace_schedule_ai_task:
allowed_tools must list real domain tools for the future run, not v3 meta-tools.
- Include
workspace_project_id for provider/campaign tasks.
- For write future runs, include concrete target items and a confirmed plan.
Output
Return a short human summary: project selected, which type was created, whether it runs automatically, what the user must do next, and what remains unconfirmed.
1---2name: workspace-project-manager3description: Управлять Пространствами LidFly и project-first памятью Workspace: проекты, provider entities, кампании, документы, решения, настройки, задачи и AI-автозапуски. Использовать для любой записи памяти или управления проектом с точным workspace_project_id.4---56# Workspace Project Manager78Use this skill when the user asks about projects, clients, memory, decisions, documents, settings, saved campaign context, tasks, reminders, or scheduled AI checks.910## Model1112- Пространство is the user-facing memory container.13- Workspace project is a business, project, direction, or agency client.14- `workspace_project_id` is the canonical id for memory writes.15- Provider identifiers are external entities, not project ids: `client_login`, `client_id`, `account_id`, `counter_id`, `host_id`, `subdomain`.1617## Project Scope1819Before writing audits, documents, decisions, snapshots, settings, provider links, campaign links, or provider-scoped tasks:20211. If exact `workspace_project_id` is known, use it.222. Otherwise call `workspace_prepare_project_scope` with all known selectors: `project_name`, `provider`, `external_entity_key`, `external_campaign_id`, `client_login`, `vk_client_id`, `account_id`, `metrika_counter_id`, `lidfly_subdomain`, `host_id`, `campaign_name`.233. If resolved, write with returned `workspace_project_id`.244. If ambiguous, show candidates and ask for exact `workspace_project_id`.255. If no project exists or no project matches, offer to create one with `workspace_create_project`; do not create "Основной проект" silently.2627## Provider Links2829- Call top-level `get_provider_context` with the exact `workspace_project_id` before treating a missing provider scope as an error.30- If it returns `provider_link_candidates`, those scopes are verified but not executable inside the project yet.31- When the user asked to link the cabinet, choose the exact candidate and execute only its prepared `next_action` through `call_write_tool`. Keep its arguments unchanged; MCP confirmation is still required.32- If several candidates are returned, ask the user which cabinet to link. Never invent `client_login` from the project/account name or `external_entity_key`.33- A missing provider link is a normal confirmation-gated write workflow, not a support incident. Do not call `support_prepare_report` for it.34- Read-only project members must not receive unlinked owner OAuth candidates; do not try to recover them through personal scope enumeration.3536## Tools To Prefer3738Find every internal Workspace tool with `search_tools({ provider: "workspace", ... })` and read its schema with `get_tool_schema` before the first call.3940Read through `call_tool`:4142- `workspace_list_projects`43- `workspace_get_project`44- `workspace_prepare_project_scope`45- `workspace_prepare_project_deletion`46- `workspace_get_settings`47- `workspace_get_tasks`48- `workspace_get_scheduled_ai_tasks`4950Write through `call_write_tool`:5152- `workspace_create_project`53- `workspace_delete_project`54- `workspace_upsert_provider_entity`55- `workspace_link_campaign`56- `workspace_update_settings`57- `workspace_add_tasks`58- `workspace_schedule_ai_task`5960Never pass top-level meta-tools such as `search_tools` or `get_tool_schema` as `tool_name`.6162## Permanent Project Deletion6364Permanent deletion is owner-only, irreversible, and never allowed in an AI autostart.65661. Resolve and use the exact `workspace_project_id`; never select a deletion target from a similar name.672. Call read-only `workspace_prepare_project_deletion`.683. If `can_delete=false`, explain the returned blocker. Archive an active project only if the user asked; protected accounting history means the project must remain archived.694. If ready, show `confirmation_message`, the deletion counts, and retained activity-history count. Wait for an explicit textual confirmation.705. Call `workspace_delete_project` through `call_write_tool` with the unchanged `workspace_project_id`, `expected_project_name`, and `expected_updated_at` from that preflight.716. If the target changed, run the preflight again and request a new confirmation. After a transport-uncertain delete, reread the exact project before considering any retry.7273## Reminders vs AI Autostarts7475- `workspace_add_tasks` is a manual reminder: it stores a prompt and due date, but the due date only triggers email and never runs AI or provider tools.76- If a future check must be shown to the owner, asks a question, or needs a new decision or confirmation, use `workspace_add_tasks`.77- `workspace_schedule_ai_task` is an AI autostart: LidFly executes the saved plan automatically at the specified time without a new confirmation.78- Objects, actions, values, and all conditional branches must be fully approved before using `workspace_schedule_ai_task`.7980For `workspace_schedule_ai_task`:8182- `allowed_tools` must list real domain tools for the future run, not v3 meta-tools.83- Include `workspace_project_id` for provider/campaign tasks.84- For write future runs, include concrete target items and a confirmed plan.8586## Output8788Return a short human summary: project selected, which type was created, whether it runs automatically, what the user must do next, and what remains unconfirmed.