repeat-start attribute gives you several repetitions before any buttons are pressed.
<div id="observation" repeat="template" repeat-start="5">
  <label>Species: 
    <input type="text" name="species[observation].name" value="" />
  </label>
  <label>Count: 
    <input type="number" min='1'  value=""
           name="species[observation].number" />
  </label>
</div>
<div><button type="add" template="observation">Add Species</button></div>