Communitygithub.com

pnz1990/otherness

自律的なソフトウェア開発。あなたはビジョンを書き、othernessがコードを書きます。

otherness とは?

othernessは、OpenCode AIエージェントランタイム上で動作する自律型ソフトウェア開発エージェントです。人間の入力を必要とせず、コーディネーター、エンジニア、敵対的QA、スクラムマスター、プロダクトマネージャーの役割を順番にループで実行します。GitHub上でホストされている任意のプロジェクトに対して、自律的にワークキューを生成し、機能を実装し、PRをレビューし、リリースを行います。また、自己改善ループにより、otherness自体の改善が全プロジェクトに即座に展開されます。このエージェントは、SDLCプロセス、アーキテクチャ、テスト戦略、変更リスク階層、アンチパターンなどを詳細に定義したSKILL.mdドキュメントに従って動作し、CRITICALな変更には常に人間のレビューを必要とします。

対応~Claude Code~Codex CLI~Cursor✓OpenCode
npx skills add pnz1990/otherness

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

otherness — プロジェクトエージェントコンテキスト

これは何か

othernessは自律的なソフトウェア開発システムです。単一のセッションが、コーディネーター、エンジニア、敵対的QA、スクラムマスター、プロダクトマネージャーの役割を順番に、人間の入力なしでループ処理します。AGENTS.md、docs/aide/、.otherness/state.jsonを読み取り、自律的にワークキューを生成し、機能を実装し、PRをレビューし、リリースを出荷します。

othernessは現在、それ自体で動作しています。このエージェントがothernessを改善すると、その改善は自己更新メカニズム(git -C ~/.otherness pull)を介して、次回実行時にothernessを使用するすべてのプロジェクトに展開されます。

ステータス: アクティブ。コアループ安定。自己改善モード有効。

⚠️ グローバルデプロイ警告 — マージ前に必ずお読みください agents/standalone.mdまたはagents/bounded-standalone.mdへの変更は、次回セッション開始時に世界中のothernessを使用するすべてのプロジェクトに即座に展開されます。これらのファイルは最もリスクの高い変更対象です。以下の「変更リスク階層」セクションを参照してください。


SDLCプロセス

チームプロセスは~/.otherness/agents/standalone.mdに埋め込まれています。このファイルにはプロジェクト固有のコンテキストのみが含まれています。


プロジェクト設定

PROJECT_NAME:   otherness
CLI_BINARY:     ""
PR_LABEL:       otherness
REPORT_ISSUE:   741
REPORT_URL:     https://github.com/pnz1990/otherness/issues/741
BOARD_URL:      ""
BUILD_COMMAND:  bash scripts/validate.sh
TEST_COMMAND:   bash scripts/test.sh
LINT_COMMAND:   bash scripts/lint.sh
VULN_COMMAND:   ""

アーキテクチャ

othernessは、OpenCode(AIコーディングエージェントランタイム)によって読み取られるマークダウン命令ファイルのコレクションです。コンパイルされたバイナリ、サーバー、データベースはありません。「プロダクト」とは、それらの命令が生み出す自律エージェントループの品質です。

デプロイモデル: ~/.otherness/agents/はgitリポジトリです。すべてのエージェントは起動時にgit -C ~/.otherness pullで自己更新します。pnz1990/otherness:mainにマージされたPRは、次回実行時にすべてのユーザーに展開されます。

実行時依存関係: OpenCode(エージェント実行)、gh CLI(すべてのGitHub操作)、git(VCS + ワークツリー分離 + 自己更新)、python3 stdlib(YAML解析、JSON状態管理)。

状態: 専用の_stateブランチ上の.otherness/state.json。mainには決して置きません。並列セッションはブランチプッシュを分散ロックとして使用します。

スキル: agents/skills/*.md — エンジニアおよびQAフェーズで読み込まれる再利用可能なチェックリスト。/otherness.learnによって拡張されます。

パッケージレイアウト

~/.otherness/              ← リポジトリルート(このパスにgit clone)
  agents/
    standalone.md              ← 薄いオーケストレーター:状態管理、起動、ループスケルトン、ハードルール
    bounded-standalone.md      ← スコープ付きエージェント — standalone.mdをラップする50行
    onboard.md                 ← 既存プロジェクトのオンボーディング
    otherness.learn.md         ← 学習エージェント — オープンソースから内面化
    otherness.arch-audit.md    ← アーキテクチャ監査エージェント
    gh-features.md             ← GitHub APIリファレンス
    phases/                    ← フェーズ実装(standalone.mdによって読み込まれる)
      coord.md                 ← フェーズ1:ハートビート、レート制限、キュー生成ロック、スケール監視、クレーム
      eng.md                   ← フェーズ2:仕様/計画/タスク(speckit統合)、実装、メモリ
      qa.md                    ← フェーズ3:敵対的レビュー、仕様準拠、マージ、アーカイブ
      sm.md                    ← フェーズ4:トリアージ、スケール復旧、メトリクス、クロスプロジェクト学習
      pm.md                    ← フェーズ5:プロダクト検証、ロードマップ健全性、競合チェック
    skills/                    ← 再利用可能なスキルファイル
      declaring-designs.md     ← 仕様品質基準
      reconciling-implementations.md  ← QAチェックリスト
      agent-coding-discipline.md      ← 外科的変更、検証可能な目標
      autonomous-workflow-patterns.md ← ワークフローデザインパターン
      architectural-audit.md   ← 4つのレンズによる監査方法論
      contribution-hygiene.md  ← PRとコミットの規律
      agent-responsibility.md  ← 判断力と責任のパターン
      role-based-agent-identity.md    ← ロールアイデンティティパターン
      ephemeral-pr-artifacts.md       ← PR運用パターン
      explicit-anti-patterns.md       ← アンチパターンドキュメント
      triage-discipline.md            ← SMトリアージプロセス
      PROVENANCE.md            ← 学習セッション監査証跡
      README.md                ← スキルインデックス
  boundaries/
    README.md
    example.boundary
  docs/
    aide/
      vision.md
      roadmap.md
      definition-of-done.md
      progress.md
  .otherness/
    state.json                 ← _stateブランチのみ
  .opencode/
    command/
      otherness.run.md
      otherness.run.bounded.md
      otherness.setup.md
      otherness.status.md
      otherness.upgrade.md
      otherness.learn.md
      otherness.arch-audit.md
      otherness.cross-agent-monitor.md
  otherness-config.yaml
  otherness-config-template.yaml
  AGENTS.md
  README.md
  onboarding-new-project.md
  onboarding-existing-project.md
  scripts/
    validate.sh                ← BUILD_COMMANDターゲット
    test.sh                    ← TEST_COMMANDターゲット
    lint.sh                    ← LINT_COMMANDターゲット

変更リスク階層

これは最も重要なセクションです。すべてのPRはマージ前に分類されなければなりません。

階層ファイルリスクマージゲート
CRITICALagents/standalone.md, agents/bounded-standalone.md, agents/phases/*.mdすべてのプロジェクトに即座にデプロイされます。壊れた命令は、すべてのothernessユーザーの次回セッションを停止させる可能性があります。[NEEDS HUMAN] マージ前に人間によるレビューが必要。自律マージ不可。
HIGHagents/onboard.md, agents/otherness.learn.md, otherness-config-template.yaml, onboarding-*.md新規プロジェクトのセットアップまたは学習ループに影響します。QAはリファレンスプロジェクトに対して検証する必要があります。テストに合格すれば自律マージ許可。
MEDIUMagents/skills/*.md, agents/gh-features.md, boundaries/付加的な知識。リグレッションの影響は低い。標準QAサイクル。自律マージ。
LOWdocs/, README.md, AGENTS.md, scripts/ドキュメントとスキャフォールディング。実行時の影響なし。自律マージ。

CRITICAL階層ルール: agents/standalone.md、agents/bounded-standalone.md、またはagents/phases/*.mdに触れるPRは、PRに[NEEDS HUMAN: critical-tier-change]を投稿しなければならず、自律マージしてはなりません。人間のレビューのために残してください。


othernessにとっての「テスト」とは

othernessには単体テストがありません。その正しさは、実際のプロジェクトで実行し、動作を観察することによってのみ検証できます。

scripts/validate.sh(BUILD_COMMAND)は、以下の構造チェックを実行します。

  1. ハードコードされたプロジェクトパスがない — エージェント、フェーズ、およびスキルファイルは、実行可能な命令コンテキストで特定のプロジェクトを参照してはなりません。PROVENANCE.mdとHTMLコメントの出典メタデータは例外。
  2. スキル参照が解決される — standalone.mdおよびagents/phases/*.md内のすべてのLoad skill: read ...参照が、ディスク上またはリポジトリ内の既存ファイルを指している。
  3. 必要なファイルが存在する — 必要なセットにリストされているすべてのエージェントファイル、フェーズファイル、スキルファイル、ドキュメント、およびコマンドファイルが存在する。
  4. 自己更新が存在する — standalone.mdにgit -C ~/.otherness pull自己更新ブロックが含まれている。

scripts/test.sh(TEST_COMMAND)は、4つの検証チェックすべてに加えて以下を実行します。

  1. 統合テスト — otherness-config.yamlのmonitor.projectsにある最初のotherness以外のエントリ(リファレンスプロジェクト)でothernessが正しく実行されていることを、_stateブランチが過去72時間以内に活動を示しているか確認することで検証。

scripts/lint.sh(LINT_COMMAND)は、python3を使用して(外部ツール不要)エージェントファイルの構造的正しさをチェックします。CRLF改行、nullバイト、standalone.md内の必須フェーズヘッダー。


自己改善ループ

othernessがそれ自体で実行されるとき、改善分野は次のとおりです。

  1. エージェントループの品質 — スタンドアロンエージェントはより良い意思決定を行いますか? 測定基準:リファレンスプロジェクトでのバッチあたりの[NEEDS HUMAN]エスカレーションの減少、アイテムあたりのマージまでの時間短縮。
  2. スキルの深さ — /otherness.learnセッションからスキルファイルは増えていますか? 測定基準:PROVENANCE.mdエントリ、スキルファイル数。
  3. オンボーディングの摩擦 — /otherness.onboardは完全で正確なdocs/aide/ファイルを生成しますか? 測定基準:オンボーディング後に必要な手動編集の数。
  4. ドキュメントの正確性 — README.mdは実際の動作と一致していますか? 測定基準:PM検証ジャーニーが合格。
  5. ツーリング — scripts/validate.sh、scripts/test.sh、scripts/lint.shは実際のリグレッションをキャッチしますか? 測定基準:これらのスクリプトは時間の経過とともに改善される。

PMフェーズは、すべてのバッチでothernessをその起源となったコミュニティ(Hermes、Multica、Archon)と比較し、埋める価値のあるギャップを特定しなければなりません。


アンチパターン(QAはこれらを含むPRをブロックします)

パターン検出者
[NEEDS HUMAN]ラベルなしでCRITICAL階層PRをマージするQA — ハードブロック
standalone.mdにプロジェクト固有のパス(例:fleetプロジェクト名、owner/repoスラッグ)をハードコードするQA
欠落しているオプションファイルでグレースフルフォールバックなしにブロックするエージェント命令QA
すべてのOpenCodeセッションで利用可能ではないツールを参照するスキルファイルQA
起動時の自己更新git pullを削除または弱体化するQA — ハードブロック
並列セッションの安全性を検証せずに_stateブランチ書き込みパターンを変更するQA — ハードブロック
実装なしのタスク[x]QA

ラベル分類

グループラベル
種類kind/enhancement, kind/bug, kind/chore, kind/docs
エリアarea/agent-loop, area/skills, area/onboarding, area/tooling, area/docs
優先度priority/critical, priority/high, priority/medium, priority/low
サイズsize/xs, size/s, size/m, size/l, size/xl
リスクrisk/critical, risk/high, risk/medium, risk/low
タイプepic
ワークフローotherness, needs-human, blocked

プロダクト検証シナリオ(PMフェーズ)

PMエージェントは、リファレンスプロジェクトで観察することによってothernessを検証します。 リファレンスプロジェクトは、otherness-config.yamlのmonitor.projectsの下にある最初のotherness以外のエントリです。以下のコマンドは$REFERENCE_PROJECTをプレースホルダーとして使用しています。実際のプロジェクトスラッグ(例:owner/my-project)に置き換えてください。

シナリオ1:リファレンスプロジェクトが生きている

REFERENCE_PROJECT=$(python3 -c "
import re
in_monitor=in_projects=False
for line in open('otherness-config.yaml'):
    if re.match(r'^monitor:',line): in_monitor=True
    if in_monitor and re.match(r'\s+projects:',line): in_projects=True
    if in_projects:
        m=re.match(r'\s+- (.+)',line)
        if m:
            r=m.group(1).strip()
            if not r.endswith('/otherness'): print(r); break
")
gh api "repos/$REFERENCE_PROJECT/branches/_state" \
  --jq '.commit.commit.committer.date'
# 過去72時間以内である必要があります。それより古い場合:othernessがリファレンスプロジェクトで停止しています。

合格:_stateが72時間以内のコミットを示す。

シナリオ2:リファレンスプロジェクトにオープンPRまたは最近のマージがある

gh pr list --repo $REFERENCE_PROJECT --json number,title,state,createdAt \
  --jq '.[] | "\(.state) \(.createdAt) \(.title)"' | head -5

合格:過去7日間に少なくとも1つのPRがオープンまたはマージされている。

シナリオ3:スキルが成長している

ls ~/.otherness/agents/skills/ | wc -l
# 4以上である必要があります(最初の4つ)。増えているということは、/otherness.learnが実行されたことを意味します。
tail -20 ~/.otherness/agents/skills/PROVENANCE.md

合格:PROVENANCE.mdに過去30日以内のエントリが少なくとも1つある。

シナリオ4:READMEが実際の動作と一致している

README.mdを読み、agents/standalone.mdと相互参照してください。 確認:READMEにリストされているすべてのコマンドが.opencode/command/に存在する。 確認:スタック図にリストされているすべてのエージェントファイルがディスク上に存在する。 見つかった不一致ごとにkind/docs issueを開いてください。

シナリオ5:自己改善が行われている

OTHERNESS_REPO=$(python3 -c "
import re
for line in open('otherness-config.yaml'):
    m=re.match(r'^\s+repo:\s*(.+)',line)
    if m: print(m.group(1).strip()); break
")
gh pr list --repo $OTHERNESS_REPO --state merged \
  --json mergedAt,title --jq '.[] | "\(.mergedAt) \(.title)"' | head -10

合格:過去14日間に少なくとも1つのPRがマージされている。0の場合:othernessは最近自分自身を改善していません。理由を調査し、issueを開いてください。


エージェントが変更してはならないファイル

  • AGENTS.md(このファイル)
  • docs/aide/vision.md
  • docs/aide/roadmap.md
  • otherness-config-template.yaml(変更リスク階層HIGH — QAのみ、自律的ではない)

将来のリスク:グローバルデプロイモデル

将来の検討のための文書(オプションB):

現在、othernessのmainブランチにマージされたPRはすべて、git -C ~/.otherness pullを介してothernessを使用するすべてのプロジェクトに即座にデプロイされます。これがオプションAです。高速でシンプル、バージョニングのオーバーヘッドはありません。

リスク:agents/standalone.mdのバグにより、すべてのothernessセッションが同時に停止します。現在は、CRITICAL階層に人間のレビューを要求し、リファレンスプロジェクトでの統合テスト、およびエージェントループが回復力を持つ(不適切な命令はクラッシュではなく[NEEDS HUMAN]を引き起こす)という事実によって軽減されています。

オプションB(バージョン管理リリース)にアップグレードする時期:

  • othernessが10を超える異なるリポジトリで使用されている場合
  • CRITICAL階層のリグレッションが非テストプロジェクトに実際の損害を与えた場合
  • ユーザーがセッション間で安定性の保証を必要とする場合

オプションBの設計:gitタグをリリースとして、プロジェクトはotherness-config.yamlでタグにピン留めし、/otherness.upgradeは変更ログレビューステップでピンを更新します。git pullによる自己更新はgit checkout <ピン留めされたタグ>になります。

関連スキル