Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

[Feature]: Let a project declare optional components absent by choice, so fw doctor stays green and readable

オープン
#98 コメント 4 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
5/5
見積もり時間
1週間以上
初心者へのやさしさ
45/100
issue の種類
機能追加
明瞭さ
明確に書かれている
活発さ
活発
技術スタック
shell, yaml
領域
cli, devops, tooling

調査の方向性

Start by reading lib/config.sh and agents/context/sidecar-autostart.sh, then trace how fw doctor, fw audit, and fw cron generate read project configuration. Identify how fw upgrade preserves MESSAGING_TOOLKIT and which cron jobs and checks map to each component. Done means disabled components are skipped in doctor and audit, omitted from generated cron jobs, and kept through upgrades.

索引モデルが issue の本文から書いたものです。

説明

area:doctor enhancement severity:low status:in-progress triaged
Problem

A consumer project can deliberately run without some optional components. Here: no embedding service (Ollama: memory is tight on the host), no Playwright (no framework UI tests in a consumer), no TermLink and no cross-host messaging, no framework cron (fw cron install needs root and the two seeded jobs serve the components above).

The framework has no way to record that choice, so fw doctor exits 1 forever:

  • six FAIL lines for the vector index (index, manifest, age, lag, canary, token) plus WARN usage: recall and WARN [host] embed endpoint not reachable. lib/config.sh only offers thresholds (INDEX_MAX_AGE_HOURS, RECALL_FAIL_PCT_WARN...), no switch;
  • WARN Playwright pip package missing;
  • WARN Cron registry present but not generated (the seeded jobs are sidecar-sweep-5m and index-reindex-hourly);
  • WARN Sidecar watcher live but INERT: TermLink absent and WARN [host] TermLink not installed.

MESSAGING_TOOLKIT: 0 (T-4042, thank you) stops the slash commands and scripts, but not the sidecar: the sidecar-autostart SessionStart hook still starts a receiver and two watchers for every session (agents/context/sidecar-autostart.sh); the only opt-outs are the environment variable FW_SIDECAR_AUTOSTART=0, which belongs to the launcher, not to the project, and fw sidecar stop.

A doctor that is always red teaches the operator to stop reading it, and the real failures are lost among the expected ones.

Proposed Solution
  1. One project-level switch per optional component in .framework.yaml, read by fw doctor and fw audit, for example SEMANTIC_INDEX: 0, UI_TESTS: 0, SIDECAR: 0. When off, the related checks print SKIP <name> (disabled in .framework.yaml) and do not count toward the exit code.
  2. MESSAGING_TOOLKIT: 0 also implies no sidecar autostart and no sidecar-sweep-5m job (or SIDECAR: 0 as its own key, documented next to it).
  3. fw cron generate leaves out jobs whose component is off, so fw cron install installs only what is used.
  4. fw upgrade keeps these keys, as it already keeps MESSAGING_TOOLKIT.
Subsystem

Task Management

Scope

None

Alternatives Considered
  • Install everything: Ollama costs memory the host does not have; Playwright and TermLink serve nothing in this project.
  • Live with the red doctor: that is what happens now, and it hides real failures.
  • FW_SIDECAR_AUTOSTART=0 in the launcher: it works for the sidecar only, and the setting then lives outside the project.
Additional Context

1.8.11 (e42aa41bf), vendored consumer, Linux (Ubuntu 20.04, systemd 245), Claude Code. Found during a review of the installation after upgrading from 1.8.6. Related defects found in the same review (smoke test, cron OK, resolver-loop, turn driver) are reported separately; this request is only about declaring components absent.

主要言語
Shell
スター
16
フォーク
6
平均マージ
6時間 24分
マージ済み PR(30日)
5

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

DimitriGeelen/agentic-engineering-framework のほかの issue

DimitriGeelen/agentic-engineering-framework の issue をすべて見る

似ている issue

Shell/Bash の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。