Рыба проекта. Минимальная функциональность

This commit is contained in:
2026-08-03 22:22:24 +03:00
commit 8c8631ac9c
80 changed files with 10618 additions and 0 deletions
+11
View File
@@ -0,0 +1,11 @@
# Common Skills
> **Русская версия:** [README.ru.md](README.ru.md)
Language-agnostic skills applicable across all projects.
## Available Skills
| Skill | Description |
|-------|-------------|
| [common-daemon-cli-skill](common-daemon-cli-skill) | Use this skill whenever you need to implement a system daemon mode in your CLI application. |
+12
View File
@@ -0,0 +1,12 @@
# Common Skills
> **English version:** [README.md](README.md)
> **Вернуться к оглавлению:** [README.ru.md](../../README.ru.md)
Языко-независимые скиллы, применимые во всех проектах.
## Доступные скиллы
| Скилл | Описание |
|-------|----------|
| [common-daemon-cli-skill](common-daemon-cli-skill) | Используйте этот скилл, когда необходимо реализовать режим системного демона в CLI-приложении. |
@@ -0,0 +1,69 @@
---
name: common-daemon-cli-skill
description: Use this skill whenever you need to implement a system daemon mode in your CLI application.
---
# The "daemon" Subcommand
Every CLI daemon must have a `daemon` subcommand with the following nested subcommands:
* logs - view logs of the active daemon
* enable - enable the daemon, copy configuration files and the executable itself to system directories
* disable - disable the daemon; if executable files or config were copied to a system directory, do not touch them
* status - show the daemon's status. Is it enabled? If it crashed, what error? The last 50 lines of logs if it crashed.
* env - allows modifying the environment variables with which the daemon runs.
* restart - restarts the daemon
For example:
```shell
myrootcommand daemon [ enable / disable / logs / status / env ]
```
# Enabling the Daemon
Enabling the daemon must support the following operating systems:
* Linux-based
* \+ Systemd
* \+ OpenRC
* \+ Init.D
* FreeBSD
* Windows
* MacOS
(The method by which the application is added to autostart is displayed in `status`)
Enabling includes:
* Copying the configuration file and the application executable to a location where the user won't accidentally delete them. For example, to `/var/lib/*` on Linux. If the `--no-copy` flag is provided, copying is skipped and files remain in their original locations.
* Adding the application to autostart with the specified config (if there is a config at all)
* Storing information somewhere publicly accessible that the daemon is enabled.
# Disabling
When disabling, check whether the daemon exists or not.
If the daemon does not exist, simply inform the user.
If the daemon is in autostart, remove it from there.
# Removing Copies
Removes any copies made during enabling, if they were created.
Activated by the `--remove` flag.
In this case, a random number between 1000 and 2000 is generated, which must be entered into an interactive input field to confirm.
The CLI explicitly and clearly notifies the user about this.
# Environment Configuration (env)
Allows editing / adding / deleting the daemon's environment variables.
Subcommands:
* add - adds a new value; overwrites the old one if it exists
* remove - removes an environment variable
* append - appends to an environment variable using the path separator — for example, on Linux: `$PATH:new_value` and so on.
```shell
myrootcommand daemon env append PATH /path/to/my/external/files
myrootcommand daemon restart
```