NeuronCheckには簡易なプラグイン機構があり、標準で使用できるキーワードrespondable, any, except, array_of, hash_of, blockの他に、ユーザーが独自の宣言用キーワードを追加することができます。

たとえば、新しくbooleanというキーワードを追加したい場合には、下記のように記述してください。

require 'neuroncheck'

NeuronCheckSystem::Plugin.add_keyword(:boolean) do
  # キーワードを使用したときに呼び出されるメソッド
  # respondable(:each) のように引数付きでキーワードを呼んだ場合は、それもon_callメソッドの引数として渡される
  def on_call
  end

  # 実際のチェック処理を実行するメソッド。trueかfalseのいずれかを返す必要がある
  def match?(value)
    value.equal?(true) or value.equal?(false)
  end

  # そのキーワードの内容を表す文字列。エラーメッセージで使用される
  def expected_caption
    "boolean value"
  end
end

NeuronCheckSystem::Plugin.add_keywordブロックの中では、Rubyの通常のクラス定義と同様に、メソッドを定義することができます。
そして、その中で上記の3種類のメソッドを定義することで、キーワードの動作を規定することができます。

上記のようにして登録したキーワードは、ndeclブロック内で他のキーワードと同じように使うことが可能です。

module Foo
  extend NeuronCheck
  ndecl {
    args boolean
  }
  def self.foo_func(flag: false)
  end
end


Foo.foo_func
Foo.foo_func(flag: 'invalid')
#=> script.rb:30:in `<main>': argument `flag' of `Foo.foo_func' must be boolean value, but was "invalid" (NeuronCheckError)
#             got: "invalid"
#       signature: Foo.foo_func(flag:boolean value)
#     declared at: script.rb:22:in `block in <module:Foo>'
#   

標準で使用できるrespondable, any, exceptなどのキーワードも、上記のプラグイン機構を用いて定義されています。(ただし、上記で説明がないメソッドを使っているところもあります)
実装の内容を見たい場合は、ソースファイル neuroncheck/builtin_keyword.rb を参照してください。

なお、NeuronCheckSystem::Plugin.add_keywordの他に、下記の2つのメソッドも使用可能です。

require 'neuroncheck'

# booleanキーワードのエイリアス (別名) として、新しくboolキーワードを定義
NeuronCheckSystem::Plugin.alias_keyword(:bool, :boolean)
# 前に定義した boolean キーワードを削除する
NeuronCheckSystem::Plugin.remove_keyword(:boolean)