Show HN: Jacquard —AI で生成され、人間が審査したコード向けのプログラミング言語—

2026/07/14 0:56

Show HN: Jacquard —AI で生成され、人間が審査したコード向けのプログラミング言語—

RSS: https://news.ycombinator.com/rss

要約

Japanese Translation:

Jacquard は FriendMachine プロジェクトによるエンドツーエンドの研究用プロトタイプであり、人間の監視の下で生成された AI プログラムを安全に実行・レビュー・検証することを目的としています。.jac シンタックスを持つ小型なプログラミング言語として、汎用的な生産システムであることよりも、信頼性、シミュレーション、構造的同一性を優先しています。アーキテクチャは厳格なワールドエフェクトを強制し、実行前に

--allow
フラグを用いて開発者に特定の権限を付与することを要求することで、アンビエント・オーソリティーがない状態での未処理のランタイムエラーを拒否します。この安全性は、Warp テストフレームワークによる双方をサポートする大規模な 554 つのテストケースセットによって厳格に検証されており、OCaml ベースのインタプリタと C を出力するネイティブ AOT バックエンドに対する差分テストを実施しています。単なる実行だけでなく、Jacquard はエフェクト用の関数シグネチャを読み取る機能や、内容アドレスによる構造的同一性を通じたマルチショット計算再開能力による網羅的探索および正確なベイジアン推論を可能にします。現在では VM/JIT コンパイル、並行性、膜の強制、形式(soundness) の証明などの制約が存在しますが、Jacquard は将来の AI 出力へのレビューをデプロイ前に実施するための再現可能な基盤を提供します。

本文

Jacquard ファウンドゥード研究プロジェクト

Jacquard は、コードの記述、レビュー、シミュレーション、およびそれらを信頼することを可能にするためのファウンドゥード(FoundMachine)研究プロジェクトです。これは単なるプログラミング言語ではなく、人間によるレビューを支援する仕組みを内包したシステムです。

注意: 現在のは研究プロトタイプ(バージョン 0.1)であり、生産環境での即時利用は想定されていません。必ず LIMITS.md を事前にお読みください。


概要と特徴

Jacquard はコンパクトな構文(

.jac
)を持ち、OCaml チェッカーCPS インタープリタを備えています。また、カーネル(
.jqd
)のネイティブ AOT(コンパイル)バックエンドも実装されています。

言語が暴露する情報

多くの言語は「何を計算するか」のみを表しますが、Jacquard は以下も直接表します:

  • Effects (効果): プログラムが及ぼす変化
  • Uncertainty (不確実性): 有限離散的不確実性のモデル化
  • Canonical Program Identity (規範的な同一性): コードの構造的等価性

これらはコメントやログではなく、言語自体に埋め込まれています

ここしかできないこと(他言語にはない機能)

  1. 即座の効果把握: 一行で関数の可能な効果を判断可能。型シグネチャ
    (text) -> {net} text
    はネットワーク効果へのアクセスを示します。デフォルトでは外部世界へのアクセスは拒否されます。
  2. 多様な「世界観」での実行: 同じコードを、実際のネットワークや過去のトラフィック記録(確率モデル)など、異なるコンテキストに対して実行できます。外部ハンドラ(Handler)の交換のみでコード変更不要です。
  3. 確率的な列挙処理: すべての到達可能な結果とその正確な確率をリストアップできます。証拠(Failed Tests)を扱い、各パッチが残る可能性を計算可能。
  4. 再形式化による同一性保持: コメントやフォーマット、変数名の変更などは「ノイズ」として消去され、構造的なコードのみが同等と判断されます。純粋なテストは構造が変わった場合にのみ再実行されます。

インストール方法

OCaml や

opam
をinstall する必要はありません。レビュー済みの Release Candidate バイナリを以下の手順でインストールしてください。

ビルドなしでのインストール(推奨)

curl -fsSL https://raw.githubusercontent.com/jbwinters/jacquard-lang/jacquard-core-0.1-rc3/scripts/install.sh | sh
  • 対応 OS: Linux x86_64, macOS Intel, macOS Apple Silicon
  • インストール場所: 通常
    ~/.local
    (PATH に含まれていることを確認)
  • 使用コマンド:
    jacquard
    またはエイリアス
    jac
    のどちらでも動作します。

サンプルプログラムの実行

# ファクトリアル(階乗)の実行:期待値 120
jac run ~/.local/share/jacquard/demos/basics/m1-fact.jac

ケーススタディのデモ

確率的テレメトリーや WARP チェックを含む実行例:

sh ~/.local/share/jacquard/demos/case-studies/release-risk/run.sh

開発者向け(For Humans)

研究プロトタイプとして構築されていますが、言語機能は実装済みです。

基本構成要素 (Core Ingredients)

  • 単一表現: 全ての形式は
    (head, meta, args)
    の三つ組です。
  • 代数効果とハンドラ: カルキュレーションの再開が可能で、深い多回ハンドラを扱えます。
  • 明示的能力付与 (Capability Grants):
    --allow
    を指定しない限り外部世界へのアクセスは拒否されます。
  • 型と効果の行: 関数の署名は効果をセットとして持ちます。
  • 内容アドレス指向: 同一性の判定にはフォーマットやコメントを排除した構造ハッシュを使用します。

ハンドラの動作原理 (Multishot)

ハンドラは一次継続を複数の回再開できます。これにより、正確な確率的推論(ベイジアン)がライブラリ側で処理されます。

例:多試行実行 (

test/docs-doctest/fixtures/readme-multishot.jac
)

effect Choice where {
  choose : () -> Bool
}

handle {
  match choose() {
    | True -> 1
    | False -> 2
  }
} {
  | return x -> x
  | choose() resume continue -> add(continue(True), continue(False))
}

出力:

3
(2 つの結果を収集し足算)

プログラム修復デモ (
repair.jac
)

バグを修正する際、候補パッチに対するテストの失敗結果(証拠)を計算した確率分布として扱います。最も可能性の高い修復案だけを提示します。

# 権限なしではエラー
$ jac run demos/tooling/repair.jac
error[E0814]: this program requires the `eval` effect, which is not granted

# 明示的な許可で実行 (--allow eval)
$ jac run demos/tooling/repair.jac --allow eval

※ 権限なしの状態での挙動は仕様であり、サンドボックスとして機能します。


エージェント向け(For Agents)

エージェントがプロジェクトを自律的に扱うためのガイドラインです。

docs/SKILL.md
がスキルのベースとなります。

スキルと運用ルール

  • 振る舞いの固定: トランスクリプトやゴールデンドータは変更しない。「差分を通す」ためには情報を追加し、既存のピン(制約)を弱めることは禁止されます。
  • カーネルの厳密さ:
    .jac
    は 27 の形式への射影であり、
    .jqd
    は永久的にサポートされる内部言語です。スコープ外の特徴を追加しないようにしてください。
  • 開発ゲートの厳格性:
    dune build @all && dune runtest && dune fmt
    git diff --exit-code  # 未変更であることを確認
    

コンパイル(ネイティブ AOT)

OCaml コードを C ベースのバイナリにコンパイルできます。これにより、VM/JIT や並列処理などの制約なく高速な実行が可能になります。

使用方法

export JACQUARD_PRELUDE=$PWD/prelude
export JACQUARD_RUNTIME=$PWD/runtime
jac build demos/tooling/word-count.jqd -o word-count
echo "some words some" | ./word-count --allow console

要件と環境設定

  • C ツールチェーン:
    clang
    (推奨) または
    gcc
  • スタックサイズ: デフォルト 1024MB。深い非尾再帰には注意が必要です。
  • キャッシュ: コンパイルされたユニットは
    .jacquard-native/
    にコンテンツハッシュ付きで保存されます。

ドキュメントマップ

初めての方の学習順序:

初心者パス (User-Facing)

  1. docs/README.md
    : インデックスと推奨読書パス
  2. docs/tutorial.md
    : 実行可能なユーザー向け例
  3. demos/README.md
    : デモカタログ(各デモが証明する内容)

設計者・開発者パス (Implementation)

  • docs/whitepaper.tex
    : 初期設計と理論的背景(ロードマップセクションは陳腐化している場合があります)
  • docs/ast.md
    : カーネル AST とメタデータ仕様
  • spec/jacquard-kernel-ast-m0.md
    : ソースオブトゥルース仕様の詳細
  • docs/errors.md
    : エラー診断カタログ

CI / リリース情報

  • docs/ci-cd.md
    : GitHub Actions ワークフローの説明
  • docs/release/0.1/EVIDENCE.md
    : 構築および通過したテストのリスト
  • docs/release/0.1/CLAIMS.md
    : セマンティック主張のマッピング

リポジトリマップ

メインディレクトリ構造

  • .github/
    : CI、ワークフロー、PR テンプレート。
  • AGENTS.md
    : エージェント運用メモ。
  • bin/
    : CLI エントリーポイント。
  • corpus/
    : 適合性コーパスとゴールデンドータ。
  • demos/
    : 実行可能な事例集(デモ)。
  • docs/
    : 設計ドキュメント、チュートリアル、リリースエビデンス。
  • prelude/
    : 標準ライブラリと効果宣言。
  • scripts/release/
    : リプロダシブルなリリーススクリプト。
  • spec/
    : カーネル AST とシリアライゼーション仕様。
  • src/
    : OCaml 実装コード。
  • test/
    : Alcotest/QCheck テストスイートおよび cram トランスクリプト。

実装マッピング (
src/
)

  • form.ml
    ,
    meta.ml
    : 表現とメタデータ。
  • reader.ml
    ,
    printer.ml
    : 読み込み・フォーマット。
  • kernel.ml
    : 型付きカーネル AST とバリデーター。
  • resolve.ml
    : 名前解決(コンテンツアドレス指向)。
  • canon.ml
    ,
    hash.ml
    : 規範シリアライゼーションとハッシング。
  • store.ml
    : オブジェクトストア管理。
  • eval.ml
    : CPS エバリューエータとハンドラ。
  • types.ml
    ,
    check.ml
    : 型推論・効果チェック。
  • infer_dist.ml
    : 確率的推論(列挙・尤度)。
  • warp.ml
    : WARP テストフレームワークの実装。

リリースエビデンス (Release Evidence)

バージョン 0.1 のリリース候補については、完全な再現性が保証されています。

エビデンスの再生成

チェックアウトした状態から以下のスクリプトを実行することで、公開されたすべてのテストと結果を再現できます:

JACQUARD_RELEASE_REF=HEAD JACQUARD_RELEASE_BASE=738dc8e scripts/release/reproduce-0.1.sh
  • ビルド・全テスト実行
  • フォーマットチェック
  • プライベートデモの実行
  • ガントレットテスト(厳密なシナリオ系)
  • バージョン情報の記録

生成された証拠は

.scratch/release/0.1/
に書き込まれます。


開発ワークフロー

PR を提出する前に以下のゲート通過が必須です:

eval "$(opam env)"
opam exec -- dune build @all
opam exec -- dune runtest
opam exec -- dune fmt
git diff --exit-code

ゴールドハッシュの更新: コーパスファイルを追加した際は、以下のコマンドでテスト用データを再生成してください。

opam exec -- dune exec test/gen_goldens.exe

CI/CD ワークフロー (GitHub Actions)

  1. CI / 開発ゲート: PR や main ブランチに対して、ビルド・全テスト・フォーマットチェック・リリースドキュメントの存在確認を実行。
  2. リリースエビデンス: リリースブランチに対して
    scripts/release/reproduce-0.1.sh
    を実行し、結果をアップロード。
  3. リリースバイナリ: タグ時に Linux/macOS ビンaries とソースアーカイブを公開。

詳細は

docs/ci-cd.md
を参照してください。


ライセンスと所有権

  • ライセンス: Apache License, Version 2.0
  • コードの所有権: Jacquard は記述、レビュー、コンパイルしたという事実だけで、ソースに対する著作権を主張しません。あなたのプログラムはあなたのものです
  • 例外規定: コンパイルされた出力やランタイムを含めたネイティブバイナリであっても、ユーザープログラムおよび生成物が独自のライセンス(プロプライエタリ等)を使用することを明示的に許可します。

Jacquard の名称とアイデンティティは

TRADEMARKS.md
で管理されています。

同じ日のほかのニュース

一覧に戻る →

2026/07/14 7:19

『アジア最浄の村』が日曜日観光客禁止に

## Japanese 翻訳: 2026 年 1 月以来、インディアのメガラヤ州にある約 600 人の居住者がいるモーリャン・オン(Mawlynnong)村では、「真の村の生活」を再建する目的として、日曜日の昼間の観光客に対する厳格な禁止措置を導入しています。1902 年に設立された教会が存在し、人口の推定 100% がクリスチャンであるこのコミュニティは、日曜日には単一の道路への入口を黒い金属製のゲートで閉鎖して、 uninterrupted な礼拝を保証しています。以前からほとんどの観光関連事業所が日曜日の営業停止を選択していました(レストランは 2 カ所のみ営業)ましたが、公式な禁止措置により、今では店舗や一日利用施設が完全に閉鎖されるようになっています。一泊予約を持つゲストはこの昼間の旅行禁止からの例外扱いで、ゲストハウスに滞在することができ、一方で地元のレストランや記念品販売店は引き続き閉鎖されています。住民は、村評議会の委員でもあるプリシウス・コングドプ(Precious Khongdup)を含むコミュニティの一致した支持を受けながら、この取り組みを文化のアイデンティティ、精神的なリズム、および 2003 年に「アジアで最も清潔な村」と命名されたり、2014 年にナレンドラ・モディ首相のクリーン・インディア・ミッションキャンペーンの際に全国的な注目を得たりした功績をもたらした規律を保持するために不可欠だと考えています。この決定は、観光客による妨害に対する具体的な懸念に対応しており、観光客が地面にプラスチック製の水ボトルを置き去りにするというバイラル化した事象などが挙げられ、これにより地元からは強い反発が生じていました。言語学の教授ヴィジャヤ・デブナス(Vijaya Debnath)を含む専門家は、このイニシアチブを称賛しており、清潔さを維持しつつ、村民の静かな一日の休息と祈りの必要性にも敬意を表していると評価しています。

2026/07/14 3:22

Xcode を起動することなく Mac および iOS アプリを開発して配送する方法

## Japanese Translation: 本テキストでは、Xcode を一度設定した後の開封を不要とする堅牢で完全にヘッドレスの iOS アプリケーションの作成・デプロイワークフローが概説されています。シェルスクリプトによるライフサイクル全体のアオマティゼーションを通じて、開発者は `xcodebuild` コマンドラインツールを用いてコードをコンパイルし、`notarytool` によってビルドを保護し、`devicectl` を用いて物理デバイスにアプリを直接インストールします。セキュリティは、証明書ベースのキーチェーンおよび外部パスワードマネージャーの活用により維持され、プライベートキーなどの機密情報はバージョン管理システムへの投入を完全に防ぎます。本システムは XcodeGen を用いてプロジェクトを管理し、煩雑なローカルフォルダではなくクリーンな YAML 設定ファイル(`.yml` ファイル)によってプロジェクトを制御し、アドホックテスト版と公式開発者 ID リリースを自動的に区別します。一度設定されたリリーススクリプトは、アーカイブ、署名、認証化、スタプリング、インストールを含む厳格なパイプラインを実行し、沈黙する失敗を防ぐために堅牢なエラー処理(`set -euo pipefail`)を採用します。このアプローチは、チームが手動のマウス操作または GUI ウィンドウなしに、実際に動作するソフトウェアを効率的にデプロイするために安全で再現可能な CI パイプラインを構築することを可能にします。 ## Text to translate: The text outlines a robust, fully headless workflow for creating and deploying iOS applications that eliminates the need to open Xcode after an initial setup. By automating the entire lifecycle through shell scripts, developers utilize command-line tools such as `xcodebuild` to compile code, `notarytool` to secure builds, and `devicectl` to install apps directly onto physical devices. Security is maintained by leveraging certificate-based keychains and external password managers, ensuring sensitive secrets like private keys never enter version control. The system employs XcodeGen to manage projects via clean YAML configurations (`.yml` files) rather than cluttered local folders, automatically distinguishing between ad-hoc testing versions and official Developer ID releases. Once configured, a release script executes a rigorous pipeline involving archiving, signing, notarizing, stapling, and installation, while using strict error handling (`set -euo pipefail`) to prevent silent failures. This approach empowers teams to establish secure, repeatable CI pipelines that deploy real software efficiently without any manual mouse interactions or GUI windows.

2026/07/14 1:06

Apple が発表した新たな音声分析 API「SpeechAnalyzer」のベンチマークテストで、Whisper とその前代モデルと比較

## Japanese Translation: Apple の新しい SpeechAnalyzer API は、次期 OS 26 の一部として提供されるもので、英語の読み上げ音声に対する優れたオンデバイス音声認識を実現しており、特定ベンチマークコンテキスト内では従来のツールや人気が高い Whisper モデル(Tiny, Base, Small)を大幅に上回っています。この優位性は、M2 Pro チップなどの Apple ハードウェアで行われた厳密なローカルベンチマークを通じて証明され、オーディオを外部サーバーにアップロードすることなく、高速な処理速度——Whisper Small の計算時間の約 1/3——を実現することが示されました。清潔な LibriSpeech テストデータに対しては、従来の SFSpeechRecognizer API に比べて単語誤りを約 4 倍削減し(2.12% WER から 9.02%)、ノイズのあるデータに対しても同様の劇的な改善が見られました。この研究では、Inscribe のプロダクションコードパスと同一のテストハルネスを用い、Whisper の測定値は OpenAI が公開した値と比較しましたが、Whisper の相対的な不正確さは、これらのベンチマーク(アクセントのある音声、遠距離音声、または複数話者シナリオを含まない)に限定されたもの임을 指摘しました。重要なのは、すべてのテストが完全にオンデバイスで行われたことであり、従来の SFSpeechRecognizer もローカルで使用される場合でもクラウド処理にデフォルトで切り替わるという点です。これらの結果に基づき、Inscribe は製品ロジックを更新し、対応言語(現在約 30 のロケール)では SpeechAnalyzer を優先し、未対応の言語のみを Whisper に切り替えました。さらに、研究チームは Inscribe が SpeechAnalyzer でオーディオファイルを取り扱う際に重大なバグを見出し、生テキストデータを検証のために公開ダウンロード可能とする措置を講じました。これは、Apple エコシステム内のプライバシー重視かつ高パフォーマンスなオンデバイス AI 機能において大きな飛躍を意味します。