One thing to keep in mind is that [the noun], with brackets, is something that only works inside quotation marks. Outside quotation marks, anything in brackets will get treated as a comment–that is, it gets ignored completely. (This is useful for writing notes to yourself in the code, but not useful when you’re trying to get it to do something.)
So the thing you wrote:
report filling:
say "you hold [the noun] and gently tilt it downward to fill [the second noun]"
will work (with the extra quotation mark) because you’re using brackets in quotation marks. But in the main rule you’d have to write something like:
Carry out filling:
now the noun is full.
without brackets, because you’re actually trying to do something to the noun instead of just saying its name in quotation marks.
Hope this is helpful!
For your other issue, how exactly did you define the action? If you want to be able to refer to the action as “filling the cup with the water,” you have to let Inform know where the first noun goes and what the preposition is. We do that like this:
Filling it with is an action applying to two things.
Inform will know that the noun goes where the word “it” is in the action definition and the second noun goes at the end… so it will know to expect “filling the cup with the water” rather than “filling the cup the water” or something like that. (This is mentioned in section 12.7 of Writing with Inform, but it’s mentioned really quickly two-thirds of the way into the section, and if you blink you’ll miss it. As Vince said, Jim Aikin’s Handbook might be more useful here.)
Also, not to dissuade you from something challenging, but as Vince said in another thread, liquids are notoriously difficult to handle in Inform. I’m pretty experienced, and when I wrote a cooking game with liquids, they were really annoying to program. (My comment at the beginning of that section of my program is “What was I thinking?”) So it really might be a good idea to try to get a handle on the other parts of your game before you dive into the liquids.